Linux and AIX:
Dump agents are triggered by events occurring during JVM operation.
You can create a Java java/heap/system/snap dump on a SIGQUIT signal (SIGBREAK on Windows) which represents user event signal sent from the operating system to the JVM. This signal is used for internal control purposes and do not cause JVM to terminate.
Use the following command to send the user signal to trigger the various dumps:
kill -3 <JVM PID>
The JVM adds a set of dump agents by default during its initialization. Javadumps are triggered by default for gpf+user+abort events. Because heapdump is not default agent for user signal, we must override default dump agents using –Xdump as follows:
We can analyze heapdumps in the IBM Support Assistant Memory Analyzer. Here is a deliberately created example which shows Overstuffed Session antipattern by using large HttpSession object (up to 93MB) which did explain why Java Heap was depleted under heavy load.