WebSphere Application Server & Liberty

 View Only

Lessons from the Field #19: Diagnosing problems with Liberty Server Dumps

By Brent Daniel posted Wed July 20, 2022 03:29 PM

  
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#websphere#WebSphereApplicationServer#WebSphereLiberty#automation-portfolio-specialists-app-platform

Permalink