RSA Product Set: Identity Governance & Lifecycle
RSA Version/Condition: 7.x
When the Java heap is exhausted (that is, out of memory), from the application perspective, the system will run slowly. The latency will manifest itself in various ways. For example, reviews can take a long time to finish, navigation between pages can become slow, change requests can take a long time to process, etc.
The heap can become exhausted when either it is undersized, or when the application server is under extreme load. In both cases, the heap is unable to find space for object allocation.
When the Java heap becomes exhausted, the RSA Identity Governance & Lifecycle application throws Java out of memory errors in the /home/oracle/wildfly-10.1.0.Final/standalone/log/aveksaServer.log.
A very useful troubleshooting tool to determine which objects are using all the Java heap memory is a Java heap dump. The Java heap dump lists of all the objects that are in the Java heap (that is, the objects being used by the application) at that time. Sometimes a Java heap dump is automatically created; especially if a system crashes due to out of memory errors. If the Java heap dump is not automatically generated, it can be manually generated using the steps outlined in this article.
Steps to create a Java heap dump
- To manually generate a heap dump (for example, during a particular step in the application where the heap is potentially being exhausted), connect to the server as the oracle user and execute the following command:
$ jmap -dump:format=b,file=heap.hprof <pid>
where <pid> is the pid of the application server process.
- Once generated, the Java heap will be placed in the /home/oracle directory.
- The Java heap name will usually follow a java_pid<number>.hprof naming convention.