Question & Answer
This technote explains how to generate javacores/thread dumps, heapdumps, and system core files which can be used to troubleshoot problems such as hangs, memory issues, and performance on the WebSphere Application Server Liberty profile.
Creating dump files (javacores/thread dumps, heapdumps and system core dumps) on-demand on the Liberty profile JVM is accomplished by the following command:
server javadump <server_name> --include=<option(s)>
thread - javacore or thread dump (javacore using IBM JDK, thread dump using Oracle JDK)
heap - heapdump and a javacore/thread dump
system - system core dump and a javacore/thread dump
** Both heap and system also create a javacore/thread dump
Assume <server_name> = server1
- To get just a javacore/thread dump:
server javadump server1
- To get a javacore/thread dump and a heapdump:
server javadump server1 --include=heap
- To get a javacore/thread dump and a system core dump:
server javadump server1 --include=system
** You can use any combination but probably do not want to use both heap and system for the same issue.
1) On AIX, Linux, Solaris and HP-UX, the command "kill -3 <pid>" will create a javacore or thread dump
Note: <pid> - the current process ID of the JVM. Example: If the current process ID is 2345, then run the command: kill -3 2345
2) On Windows systems, "kill -3" is not an option. You can create system core dumps using the Windows Task Manager "Create dump file" function, but since this procedure does not ensure that the JVM will stop all threads, there is a small possibility that the dumps will be missing data, such as thread stacks.
- Dump files will be located under the following directory:
- Thread dumps for non-IBM JDK's will be written to:
- If using an IBM JDK, you may be asked to process the system core dump with jextract. If so, follow the instructions in the technote "How to process an IBM SDK core dump with jextract"
** This will not work for a system core created by a non-IBM JDK
15 June 2018