Obtaining a Dump from the IBM JVM

There are a variety of ways to obtain a dump from the IBM JVM and various formats for the dump produced. It important to understand the content of each of the dumps so that the correct one can be selected for analysis of a given problem. In essence there are three forms of dump:

Dumps are produced by the JVM either on demand (a signal from the user) or on event (something happening within the VM). When the JVM starts it registers a number of event handlers which cause dumps to be generated for a default set of events. In the case of an Out of Memory event a heap dump is generated, for a user signal a javacore is generated and for a JVM crash a system dump is generated. For detailed information on setting the JVM options that control dump production see the IBM JDK Diagnosis Guide or access this information through the IBM Support Assistant's Find Information activity.

Making a system dump readable by the DumpAnalyzer

When a system dump is produced by the JVM it is generated in a machine specific format and the internal structure of the information is specific to the VM that created it. To make the dump readable on other systems it is necessary to run the jextract program on the dump. Jextract is shiped as part of the IBM JVM's and can be run by passing the system dump as an argument, for example

jextract <identifier>.dmp where <identifier>.dmp is the system dump generated by the failing JVM. This generates a machine independent version of the dump in <identifier>.dmp.zip which can be transmitted to another system (in binary format of course) for analysis elsewhere. It is important to note that the Dump Analyzer only reads dumps which have been processed by jextract. Moreover, the jextract which is used must be the version which is shipped as part of the Java that created the original system dump.

© Copyright IBM Corp. 2007, 2008 All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.