Bootstrap FreeKB - IBM WebSphere - Define where a core dump, heap dump, or java dump will reside
IBM WebSphere - Define where a core dump, heap dump, or java dump will reside

Updated:   |  IBM WebSphere articles

If you are not familiar with heap dumps, java dumps, and core dumps, check out my article IBM WebSphere - Respond to an out of memory heap dump on Linux.

After a core dump, heap dump, or java dump is created, by default, the dump will reside in the ${WAS_INSTALL_ROOT}/profiles/your_profile directory. This usually is not perferred, as this can cause the profile directory to eventually run out of disk space.

 

You can specify a custom location for the core/heap/java/jit/snap dump files to be written to by creating the following Environment Entries.

  • IBM_JAVACOREDIR
  • IBM_HEAPDUMPDIR
  • IBM_COREDIR (for core/jit/snap dumps)

You may also want to set these Environment Entries.

  • IBM_HEAPDUMP_OUTOFMEMORY = true
  • IBM_JAVADUMP_OUTOFMEMORY = true

Environment Entries are variables that are unique to a WebSphere application server, not to be confused with WebSphere variables, which are global variables. Environment Entries are created at Servers > Server Types > WebSphere application servers > your application server > Java and Process Management > Process definition > Environment Entries.  In this example, there are environment entries that define the directory where a core dump, heap dump and java core dump will reside.

 

After creating, deleting or updating an environment entry, you will need to restart the application server for this change to take effect.

For proof of concept, you can manually create a heap dump.

  1. In the WebSphere admin console, expand Troubleshooting and select Java dumps and cores.
  2. Check the application server and select Heap dump.

In this example, a heap dump is manually created for the server4 JVM.

 

And you may want or need to configure the WebSphere Application Server to create core/heap/java/jit/snap dumps with the dumps generic JVM argument, something like this. In the WebSphere admin console, select Servers > Server types > WebSphere application servers > your application server > Java and Process Management > Process definition > Java Virtual Machine and add -Xdump to the generic JVM argument.

-Xdump:java+heap+system+snap:events=user

 

You'll want to ensure that the directory has the write permission, otherwise you may see something like this.

JVMDUMP030W Cannot write dump to file /usr/local/dumps/core.20240418.054833.9872.0001.dmp: Permission denied

 

On a Linux system, the chmod command can be used to update the directory so that it is writable by user (u+w) and group (g+w) and other (o+w).

chmod u+w /usr/local/dumps
chmod g+w /usr/local/dumps
chmod o+w /usr/local/dumps

 

The directory permission will then probably look like this.

drwxrwxrwx 2 admin admins 6 Apr 18 23:15 /usr/local/dumps/

 

Be aware that if /usr/local/dumps is a mounted NFS share, if the server that WebSphere is running on is rebooted, and core/heap/java/jit/snap dump files are created moments after boot, before the NFS share is mounted, this can also cause permission denied to be returned. For example, let's say the /usr/local/dumps directory, when unmounted, can only be written to by root. If core/heap/java/jit/snap dump file are written to /usr/local/dumps before the NFS share is mounted, this can cause permission denied to be returned

~]# ls -ld /usr/local/dumps/
drwxrwx---. 2 root root 4096 Apr 23 02:15 /usr/local/dumps/

 

 




Did you find this article helpful?

If so, consider buying me a coffee over at Buy Me A Coffee



Comments


Add a Comment


Please enter cff4bf in the box below so that we can be sure you are a human.