Two main types of Java error messages may be observed when running Pipeline Pilot protocols.
1) "Not enough memory to create the Java VM"
This error message occurs when insufficient memory is available to create the JVM for a Java-using element. Though it can be caused by an underresourced server running out of available system memory, much more commonly the issue is that the JVM tends to first get initiated at the end of a protocol when you've run a lot of computation and may not have enough unfragmented memory in your process space, particularly on a server running a 32-bit version of Pipeline Pilot.
The workaround is to force the Java VM to be loaded at the beginning of the protocol by placing a Java-based component at the start of your protocol. A good choice is to place an Auto Text component from the Reporting Collection at the start of the protocol. When placed this way the component does not have any impact on your final result, but does force the VM to be started early, when sufficient unfragmented memory is still available.
2) "Java.lang.OutOfMemoryError: Java heap space" or "GC overhead limit exceeded"
This error may occur when large amounts of data are sent to a Java-using element, and the Java VM has not been allocated a sufficient size for the quantity of data it must hold.
In Pipeline Pilot 8.5 and higher this can be readily addressed on a per-protocol basis. Simply edit your impacted protocol and add a top-level parameter named JVM Maximum Heap Size as a LongType (I believe you already have this parameter). Enter the size of the Java VM as a parameter value in Megabytes. Setting the value as a parameter affects only the edited protocol, and does not impact the settings for the whole server.
The default settings for the Java heap size are stored in the file
These can be modified for all users by changing the line:
to
(The default values may differ between versions, and you may wish to set the value higher or lower according to your needs, so use the lines above as guidelines)