Troubleshooting

Introduction

Here you will find solutions to some of the most common problems related to Axon.ivy Engine. If you can't find your solution here there are some other sources which could help:

Axon.ivy Q&A

The Axon.ivy Q&A contains a considerable amount of questions and answers related to Axon.ivy Designer and Engine.

Stack Overflow

Problems related to common technologies like Java, JSF, Primefaces are answered on the web, e.g. on Stack Overflow.

Support

You can get support via ivy@axonivy.com (support may be subject to charging, depending on your licence agreement).

Program / Engine start problems

If a program or engine does not start, execute it in a console and look at the console output. In most cases error messages are written to the console output giving you an idea about the problem.

JVM cannot allocate enough Memory

Effect

If the program or engine cannot be started and in the console the following error message is written:

>Error occurred during initialization of VM
Could not reserve enough space for object heap
Create registry entry 'SYSTEM\CurrentControlSet\Services\EventLog\Application\AxonIvyEngineConfig Launchers' for event log if it does not exists
Error: Could not initialize java virtual machine (-4)

Cause

The JVM tries to allocate memory for the Java heap, but it does not succeed. The amount of memory the JVM tries to allocate is too large for the operating system. Consequently the JVM cannot be started.

Solution

On Windows use an Ivy launch control file to set the maximum heap size to a lower value (smaller or equal to 1 GByte).

On Linux modify the AxonIvyEngine.conf script to set the maximum heap size to a lower value. The maximum heap size can be configured with the Java option -Xmx.

Socket name not available on this system

Effect

If the Enterprise Edition engine cannot be started and in the console the following error message is written:

Error while starting Axon.ivy Engine org.jgroups.ChannelException: 
    failed to start protocol stack 
    ... 
Caused by: java.net.SocketException: 
    The socket name is not available on this system 
    ...

Cause

This happens if your system supports IPv6 and you try to bind a cluster node to a IPv4 address.

Solution

Set the following java option

-Djava.net.preferIPv4Stack=true 

On Windows use an Ivy launch control file. Change the line

#ivy.vm.additional.options=

to

ivy.vm.additional.options=-Djava.net.preferIPv4Stack=true

On Linux modify the serverLauncher.sh script to set java option.

Request Entity Too Large

Effect

If the following error message appears in the browser:

Request Entity Too Large! - The HTTP method does not allow the data transmitted, or the data volume exceeds the capacity limit.

Cause

If your Active Directory contains large user groups and dependencies among them then it may occur that single sign on for some users that are members in a lot of user groups does not work. This is because the packet size of the AJP13 protocol that is used for the communication between IIS and Axon.ivy Engine is to small to hold all the necessary security information.

Solution

The problem can be solved by increasing the packet size (default value 8192) of the AJP13 protocol. The packet size must be configured with the same value on the IIS and Axon.ivy Engine side. If one side is not configured to the same size as the other, then the communication may fail. On the IIS side the packet size can be configured in the workers.properties file by setting the worker attribute max_packet_size.

Example:

worker.AxonIvyEngine.max_packet_size=16384

On the Axon.ivy Engine side the packet size can be set by changing the value of the system property WebServer.AJP.PacketSize (See chapter System Properties to learn about how to change a system property).

Install a secure random provider

Effect

In the log the following warning appears:

Failed to generate random number within 10 seconds. This could slow down the JSF runtime dramatically. Please consider installing a secure random provider for 'SHA1PRNG'!

Cause

The Engine is running on a highly virtualized cloud host and can not provide enough random data trough hardware interrupts (e.g. keyboard input or mouse moves).

Solution

Install and run an alternative random provider like 'haveged'. See the installation instructions here https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

Blocking Application/UI

If an application periodically does not answer for a couple of seconds, then the reason can be a long running full GC. Visit the chapter GC Optimization for possible solutions.