Known Issue: FME Server Core java.lang.OutOfMemoryError: Java heap space

Liz Sanderson
Liz Sanderson
  • Updated

Symptom 

In the FME Server Web UI there are toast messages stating:
Error Communicating with FME Server host
and in the fmeprocessmonitorcore.log (in Resources > Core > Current) there are recurring messages referring to java heap space: 
INFORM   Thread-148   Core   Exception in thread "RequestHandler-Thread" java.lang.OutOfMemoryError: Java heap space
...
INFORM   Core   393656 : Process "Core" being restarted.


Cause 

By default, the FME Server Core (and all other protocols) has a maximum amount of heap memory allocated. If a request exceeds this memory allocation it will cause the protocol to crash.  
The most common reason memory is exceeded is by submitting a job with a very large value for one or more of the request published parameters. For example, submitting a complete string of JSON or XML as a parameter value. The fmeserver.log (in Resources > Core > Current) will record every request, and here you should be able to identify the job request that caused the crash. 


Resolution

The recommended resolution is to adapt your workflow to reduce the request input. One suggestion is to parse the file path only and then read the content from this path within the workspace. 

Alternatively, you can increase the memory allocated to this protocol by following the instructions below to modify one of FME Server's configuration files. Note, if your job request size grows it is still possible to encounter this issue again, which is why modifying the workflow is the preferred resolution. 
  1. Run a text editor as administrator and open processMonitorConfigCore.txt located in <FMEServerInstallDir>\Server\
  2. Find the section for the crashing protocol e.g. 
    # Start FME Server Core
  3. Update -Xms32m -Xmx1024m to -Xms32m -Xmx2048m and save the file. This will update the max heap size to 2GB but FME will only use this much if it is needed. 
  4. Restart FME Server to apply this change.
Note: If you are encountering a java heap space out of memory error with another protocol first consider what in your workflow could be exceeding the allocated memory and if you can modify your workflow to avoid this, if not you can follow the steps above for any protocol, we typically recommend you start by doubling the Xmx value. 

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.