IBM Lifecycle Query Engine (LQE) application pages become unresponsive
- You cannot reach the application site
- You see the following error messages in lqe.log file:
Caused by: java.lang.OutOfMemoryError: native memory exhausted
- There is a javacore file generated. The top of the stack of current thread is the following:
at java/lang/ClassLoader.defineClassImpl(Native Method)
at java/lang/ClassLoader.defineClass(ClassLoader.java:273(Compiled Code))
There is not enough Native memory available to allocate class pointers, threads, monitor locks in the first 4GB memory region of the process.
Windows as an operating system
Resolving The Problem
There are two options to resolve the issue:
- WORKAROUND 1:
-Xcompressedrefs -Xgc:preferredHeapBase=0x100000000option from Java settings and add
-Xnocompressedrefs. This will allocate the data structures like the class pointers, threads, monitor locks anywhere in the Native memory. The disadvantage of this method is that the application uses more JAVA Heap memory. The memory increase can be up to 70% more. Therefore you potentially have to increase
-Xmxparameter as well and add more RAM to the server. For ideal server performance as a general guide line, 50% of the RAM should be available (Free) when the server is up and running. For reference on sizing guide lines please review CLM Sizing Strategy article.
- Workaround 2:
Set the registry value
HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management\AllocationPreferenceto
(REG_DWORD)=0x100000according to Compressed references article.
Internal Use Only
This technote was generated by Technote Kickstart 126.96.36.199 based on Rational Customer Support PMR 77957,070,724.
View the associated PMR's text via Wellspring at: http://eclient.lenexa.ibm.com:9082/DocFetcher/source/PMR/77957.070.724%20O16/05/18
29 September 2018