KB Article #181045

Exception in thread "Thread-7" java.lang.OutOfMemoryError: GC overhead limit exceeded

Problem

An unknown error was when trying to deploy new mappings flows on the production server.

The deployment takes some time and seems to be finished in the end but after there is an "Unknown error" when closing the transaction.

In the $CORE_DATA/log/starter.log, this kind of error will be displayed:

&&&&Exception in thread "Thread-7" java.lang.OutOfMemoryError: GC overhead

limit exceeded

at

sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.getActualTypeArguments(ParameterizedTypeImpl.java:115)

at java.util.HashMap.comparableClassFor(HashMap.java:361)

at java.util.HashMap$TreeNode.find(HashMap.java:1878)

at java.util.HashMap$TreeNode.find(HashMap.java:1881)

at java.util.HashMap$TreeNode.find(HashMap.java:1881)

at java.util.HashMap$TreeNode.putTreeVal(HashMap.java:1999)

at java.util.HashMap.putVal(HashMap.java:652)

at java.util.HashMap.put(HashMap.java:626)

at

com.axway.integrator.importexport.inventory.IntegratorInventorySerializerImpl.writeToFile(IntegratorInventorySerializerImpl.java:294)

at

com.axway.integrator.importexport.inventory.IntegratorInventorySerializerImpl.write(IntegratorInventorySerializerImpl.java:173)

at

com.axway.integrator.importexport.remote.ImportAPIServerImpl.precommitInventory(ImportAPIServerImpl.java:389)


Resolution

This error is thrown by the JVM when it encounters a problem related to utilizing resources. More specifically, the error occurs when the JVM spent too much time allowing the resources for the deployment and the Garbage Collection (GC) was reclaiming very little heap space.

During the deployment, the CPU has used its entire capacity for Garbage Collection and hence cannot perform any other tasks even if there were no limits on max memory size.

Increase the Java maximum heap size for the import/export for the broadcast agent:

  • Add the following variable in $CORE_LOCAL/config/environment.dat

CORE_BA_JVM_OPTIONS=-Xmx512m

This is the default value, if will not solve the issue, you should try with a higher one – 1024m, for example.

  • Load Integrator profile

Run ./profile.sh from $CORE_ROOT

  • Update the runtime

r4edi $CORE_ROOT/install/pgm/update_runtime.x4

  • Restart Integrator server