Java Out Of Memory Exceptions

Last update: 14 December 2017

Information

Each Fabasoft Folio Kernel instance starts it's own Java Environment to process Java code and also 3rd-party Java libraries. Although the Java environment is running inside of the Fabasoft Folio Kernel process, it has it's own memory management.

If the Java environments runs out of memory processing a request, an error message similar to java.lang.OutOfMemoryError: Java heap space is thrown to the Eventlog or Webservice log. This occurs when the Java environment has to handle large amounts of data. 

Situations where this error may occur:

  • Converting documents, e.g. conversions to PDF on the conversion server
  • Merging PDF documents, e.g. for the PDF overview on the web server
  • Handling large amounts of data within SOAP calls

With Fabasoft environment variables it is possible to control the size of Java's heap (memory) size.

Solution

The default memory limit used by the Fabasoft Folio Kernel is 256 MByte. To adjust this limit, create the following Fabasoft Environment variable.

Best practice to create new Fabasoft Environment variables is to edit the coomk.upd and cooprep.upd files on your server (web, conversion,...):

HKEY_ENVIRONMENT\JAVAHEAPSIZEMAX=1024m

For the changes to take effect, please restart all Fabasoft Kernel instances on the server. You can further enlarge the limit to fit your needs. The Java memory management will use as many memory as requested. Java's garbage collector will reduce the actually assigned memory if it is not used anymore.

Details

This Java environment is started with the following memory default parameters:

Initial minimum heap size: 64 MByte (corresponds to the Java parameter -Xms64m)

Maximum heap size: 256 MByte (corresponds to the Java parameter -Xmx256m)

All Fabasoft Environment variables, including all Java memory parameters, are listed in the Fabasoft White Paper "Fabasoft Folio Environment Variables" included in your installation kit.

Further questions?