Skip to main content

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!!!

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).


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?


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.