A Liberty server dump provides a comprehensive set of information about the state of a Liberty server. It's one of the most useful tools for IBM service to investigate problems in a Liberty server, but can also provide some interesting daignostics to end users.
Obtaining a server dump
In most cases, a server dump is obtained by running the following from a command line:
wlp/bin/server dump {server name}
The dump command supports the following options:
--include=heap
-- Produces a heap dump in .phd format
--include=system
-- Produces a system core dump
--include=thread
-- Produces a javacore containing a thread dump
--archive={filename}.zip
-- Specify a file name for the output
On Z/OS platforms the server dump can be obtained using the operator console:
MODIFY [jobname.]identifier,DUMP[,INCLUDE=<JAVA_DUMP_1>,<JAVA_DUMP_2>,...]
Contents of Liberty server dump
The dump command produces a zip file that contains a subset of the content from the Liberty server config and output directories. Notably, it contains all of the server logs and configuration files. If you use one of the 'include' options for the command then the zip file will also contain the heap, system, or thread dump that was requested. If the dump command was run while the server was running, there will also be a directory named 'dump_{timestamp}' (for example, dump_22.06.20_09.50.46 ). This directory contains 'introspections' that describe the internal state of both the Liberty server and the system running the server.
Introspections
The server introspections provide an extremely detailed look at the internals of a server and in many cases will only be useful to IBM service. However, some of them may be useful in tracking down configuration or system level problems. Below are some examples of introspectors that may be useful if you're running into problems.
Variable introspections
These files contain information about the variables that are known to the Liberty server and where they originated.
ConfigVariables
This file contains information on variables that are defined in XML configuration files, on the command line using -D arguments, or via the file system.
EnvironmentVariables
This file contains a list of all variables defined in the operating system environment. This will also contain any variables defined in server.env files.
Java Introspections
These introspectors produce information about the Java runtime.
JavaHeapInfo
Contains information from various memory related Java MBeans (for example, java.lang:type=Memory).
JavaRuntimeInformation
Contains information about the java runtime such as the uptime, JVM version, input arguments and system properties.
ThreadInfoIntrospector
Provides a simple look at threads running on the server. This is less detailed than the thread dump contained in a javacore file.
System Introspections
These introspectors provide information about the system that the server process is running on.
NetworkInterfaces
Contains information about all of the network interfaces on the system.
OperatingSystemInfo
Provides information from the java.lang:type=OperatingSystem MBean such as free physical memory and CPU load.
OSGi and Declaritive Services introspecions
These introspections may be of interest if you are developing custom features.
ConfigAdminIntrospection
If your custom feature contains configuration, you can use this introspector to ensure Configuration Admin contains the values you expect.
BundleStateIntrospection
Provides a view of the current state of all OSGi bundles. This is useful for making sure that your OSGi bundles are starting correctly.
ServiceIntrospection
Contains information on all registered OSGi services.
ComponentInfoIntrospection
Shows information on all defined Declaritive Services components. If you have components that are not activating correctly, this introspection is extremely useful for determining which dependencies are blocking activation.
z/OS Introspectors
These introspections are only produced on z/OS systems.
ProcessInformation
Provides the output of the 'ps' command for the server process.
NetstatInformation
Runs
/bin/onetstat -b IDLETIME
to get information about connections and listeners.
Other Introspections
The above list is only a subset of available introspections in Liberty. There are others that are specific to collectives, specific application types, and other Liberty internals.
#app-platform-swat#automation-portfolio-specialists-app-platform#websphere#WebSphereApplicationServer(WAS)#WebSphereLiberty