IBM Support

Mustgather: Gathering data for OutOfMemoryErrors on z/OS®

Troubleshooting


Problem

If your Java application experiences OutOfMemory(OOM) errors on a z/OS® operating system, there are a number of diagnostic data files that are useful for diagnosing the problem. This mustgather document describes about the diagnostic data files to be collected and the procedure to collect the same.

Resolving The Problem

The following set of diagnostic data files need to be collected to diagnose an OutOfMemory error in the Java application:

1. Transaction dumps(TDumps)


2. Javacores
3. Heapdumps
4. Any system dump file generated by default as a result of the OOM error
5. Verbose GC logs (native_stderr.log)
6. Application logs (joblogs, stderr, stdout)

For these diagnostic data files to be created, check that the system is configured correctly as per setup document.

Please collect the diagnostic data files for an OutOfMemory error in the Java application as per the below steps:



1. Collect the javadump, heap dump and snap trace file generated automatically by Java runtime on an OOM occurrence.

NOTE: From Java 6.2.6 SR1 level onwards, collect the transaction dump produced automatically by Java runtime on an OOM occurence.

2. For Java heap exhaustion issues, collect the javacore, transaction dump, heap dump and snap trace files generated automatically by using -Xdump option mentioned in setup.

3. For native memory issues, generate multiple transaction dumps(TDumps), Heapdumps and javacores by using the following command:
kill -SIGQUIT <pid>

When you observe the application starting to use excessive amounts of memory, start generating these above files at regular intervals.

The time interval between each generation of files depends on how quickly the application encounters an OOM error. For example, if the application takes 30 minutes to produce an OOM error, issue the kill command at 10-minute intervals.

Please note that the transaction dumps will be generated as standard MVS™ Dump data sets. The heapdumps and the javacores generated can be found in the current path. The names of them will follow the below format:
Transaction dump: %uid.JVM.TDUMP.%job.D%y%m%d.T%H%M%S
Javacore : javacore.<time stamp>.<id>.txt
Heap dump : heapdump.<time stamp>.<id>.phd

4. Collect Verbose Garbage Collector data. This data is in the location specified during setup. Alternatively, the data is sent to the stderr output.

5. Collect the application logs(joblogs) and the console logs(stderr or stdout) .

After collecting all the above diagnostic data files, you can submit them for help with diagnosing the problem.

[{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Out of Memory","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"8.0;7.1;7.0;6.1;6.0;5.0","Edition":"J2SE","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21588553