000027885 - How to generate Java heap dumps for RSA Via Lifecycle & Governance

Document created by RSA Customer Support Employee on Jul 20, 2016Last modified by RSA Customer Support Employee on Apr 21, 2017
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000027885
Applies ToRSA Product Set: RSA Via Lifecycle & Governance
RSA Version/Condition: 6.0 and higher
IssueThe RSA Via L&G application throws Java out of memory errors in the aveksaServer.log and/or the RSA Via L&G application has hung or shows considerable slowness.

CauseWhen the Java heap is exhausted (i. e., out of memory) from the application perspective, the system will slow.  The heap becomes exhausted either due to being undersized, or under extreme load on the application server and as a result the heap is unable to find space for object allocation.
The latency will manifest itself in various ways.  For example, reviews can take a long time to finish, navigation between pages becomes slow, change requests will take a long time to process, etc.
This can also be seen in the aveksaServer.log as "out of memory" errors.

ResolutionA very useful trouble-shooting 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 (i. e., 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 heap dump is not automatically generated, it can be manually generated using the following steps. 
  1. 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 box 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.

  1. Once generated, the Java heap will be placed in the /home/oracle directory.
  2. The Java heap name will usually follow a java_pid<number>.hprof naming convention.
Legacy Article IDa66702