Enabling full AIX core files

You must have the correct operating system settings to ensure that the system dump (process core file) is generated when a failure occurs.

When a failure occurs, the most important diagnostic data to obtain is the system dump. The majority of the JVM settings are suitable by default but to ensure the system dump is generated on AIX®, you must check a number of operating system settings.

If you do not enable full core dumps the only native thread details stored in the system dump are the details for the thread that was running when the JVM crashed. With full core dumps enabled, all native thread details are stored in the system dump.

Operating system settings
  1. To obtain full system dumps, set the following ulimit options for the user running the JVM:
    ulimit -c unlimited		 turn on corefiles with unlimited size
    ulimit -n unlimited		 allows an unlimited number of open file descriptors
    ulimit -d unlimited		 sets the user data limit to unlimited
    ulimit -f unlimited		 sets the file limit to unlimited
    For more information about ulimit settings, see System resource limits and the ulimit command.

    When the JVM generates a system dump it overrides the soft limit and uses the hard limit. You can disable the generation of system dumps by using the -Xdump:system:none command-line option.

  2. Set the following options in smitty:
    1. Start smitty as root
    2. Go to System Environments > Change/Show Characteristics of Operating System
    3. Set the Enable full CORE dump option to TRUE
    4. Ensure that the Use pre-430 style CORE dump option is set to FALSE
    Alternatively, you can run:
    chdev -l sys0 -a fullcore='true' -a pre430core='false'
Java Virtual Machine settings
The JVM settings should be in place by default, but you can check these settings using the following instructions.

To check that the JVM is set to produce a system dump when a failure occurs, run the following command:

java -Xdump:what
which should produce something like the following output:
-Xdump:system:
    events=gpf+abort,
    label=/u/cbailey/core.%Y%m%d.%H%M%S.%pid.dmp,
    range=1..0,
    priority=999,
    request=serial
At least events=gpf must be set to generate a system dump when a failure occurs.

You can change and set options using the command-line option -Xdump, which is described in Using dump agents.

Available disk space
You must ensure that the disk space available is sufficient for the system dump to be written to it. The system dump is written to the directory specified in the label option. Up to 2 GB of free space might be required for 32-bit system dumps and over 6 GB for 64-bit system dumps. The Java process must have the correct permissions to write to the location specified in the label option.
Maximum file size
The target file system for the system dump must support file sizes that are as large as the system dump, as well as an appropriate ulimit. If the supported file size is too small, dumps might be truncated to the maximum supported file size. To check your current file size and learn how to create a filesystem with a file size greater than 2GB, see https://www.ibm.com/support/docview.wss?uid=isg3T1023245.