Skip to main content
Question

Increasing memory for Java based readers


Hi,

I am using FME Desktop 2016.1.3 on a Windows 8 computer with 12GB RAM. One of the readers I am using is the MSACCESS_JDBC reader. While initialising that reader (it seems even before starting any reading) FME throws the error "java.lang.OutOfMemoryError: Java heap space" and cancels the translation. How can I tell FME to give more memory to Java?

Many thanks!!!

3 replies

rylanatsafe
Safer
Forum|alt.badge.img+13

For FME Server, you can try increasing the maximum memory assigned for each component in the processMonitorConfigCore.txt file, located in <FMEServer>\Server\.

Specifically it's the -Xmx parameter. For example, find the -Xmx2048m buried in this part of the config file that allocates the maximum memory for the FME Server Core! (~Lines 265-7)

# Start FME Server Core
START_SYSTEM_Core="C:/Program Files/FMEServer/Utilities/jre/bin/FMEServer.exe" -FMESERVER_CLASSPATH "C:/Program Files/FMEServer/Server/lib/*;C:/Program Files/FMEServer/Server/lib/fmeutil/*;C:/Program Files/FMEServer/Utilities/jdbc/*" -Djava.library.path="C:/Program Files/FMEServer/Server/lib/fmeutil" -Djava.security.manager -Djava.security.policy="C:/Program Files/FMEServer/Server/security/fmeserver.policy" -Djava.security.auth.login.config="C:/Program Files/FMEServer/Server/security/fmeserver.config" -Djava.net.preferIPv4Stack=true -Xms32m -Xmx2048m -Xrs COM.safe.fmeserver.FMEServer "C:/Program Files/FMEServer/Server/fmeServerConfig.txt" -MONITOR_PORT 0
STOP_SYSTEM_Core="C:/Program Files/FMEServer/Utilities/jre/bin/FMEServer.exe" -FMESERVER_CLASSPATH "C:/Program Files/FMEServer/Server/lib/*;C:/Program Files/FMEServer/Server/lib/fmeutil/*;C:/Program Files/FMEServer/Utilities/jdbc/*" -Djava.net.preferIPv4Stack=true -Xrs COM.safe.fmeserver.FMEServerShutdownAgent -fmeServerHost localhost -fmeServerAdminPort 7071

*Note that FME Server will need to be restarted for changes to take effect and you must also add the line NODE_OVERWRITE=true to the top of this config file for changes to be accepted!

 

Edit: My answer is for FME Server,.. *for FME Desktop*, please see Performance Tuning FME ("Controlling How FME Engine Consumes Memory" at the bottom).


setld_solutions
Contributor
Forum|alt.badge.img+8

I got what I needed for a certain job by running a workbench from the GUI w/ these env settings:

The Java Virtual Machine has customized initial heap size '1024M' (-Xms1024M)

The Java Virtual Machine has customized maximum heap size '16384M' (-Xmx16384M)

However, the job seems to fail when run in cmd. Thoughts on a quick fix?


fmelizard
Safer
Forum|alt.badge.img+19
  • Safer
  • August 21, 2018
setld_solutions wrote:

I got what I needed for a certain job by running a workbench from the GUI w/ these env settings:

The Java Virtual Machine has customized initial heap size '1024M' (-Xms1024M)

The Java Virtual Machine has customized maximum heap size '16384M' (-Xmx16384M)

However, the job seems to fail when run in cmd. Thoughts on a quick fix?

Does the log file when run from commandline reflect the FME_JVM_MAX_HEAP_SIZE / FME_JVM_MIN_HEAP_SIZE environment variable settings? Without knowing the situation my gut is that the command line engine isn't getting the right values.

 

 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings