IBM Support

Generating Java diagnostic dumps for App Connect Enterprise or IBM Integration Bus

How To


Summary

Use these procedures to collect Java™ diagnostics dumps from IBM App Connect Enterprise (ACE) or IBM Integration Bus (IIB).
Java™ diagnostic dumps contain:
- all Java threads running in a process (Java core or javacore files)
- objects populating the heap space (Heap dump or heapdump files)
- tracepoint information (Snap trace or snaptrace files)
- internal system information (System dump)

These files can be used to diagnose problems such as lock conditions, loops, or memory allocation in Java™ code.

Steps

The REST API is the primary method of communicating with an Integration Server in ACE v11.
This method of triggering a Java™ dump requires:
  • ACE 11.0.0.9 (or higher)
  • a "stand-alone" Integration Server
  • the REST administration port to be active and exposed for the Integration Server
Use 'curl' to send a POST to this endpoint on the Integration Server's REST admin port:
curl -X POST "http://{hostname}:{port}/apiv2/resource-managers/ComIbmInternalSupportManager/Java?path=JVM&parameter=dump&value=all"
This particular mqsichangeproperties command functionality was first introduced in IBM Integration Bus v10 (fix pack 9).
This method of triggering a Java dump requires:
  • ACE 11.0.0.9 (or higher) or IIB 10.0.0.9 (or higher)
  • a "node-owned" Integration Server
Use this 'mqsichangeproperties' command to trigger the Integration Server's JVM to create a dump:
mqsichangeproperties {Int.Node} -e {Int.Server} -o ComIbmInternalSupportManager/Java/JVM -n dump -v all
Prior to ACE 11.0.0.9 and IIB 10.0.0.9, there was no functionality in the product to create a Java™ dump.
In these cases, it is necessary to rely on the Operating System to trigger a dump.
On Linux and Unix machines, you can send a non-fatal 'kill' signal to trigger the dump:
kill -3 {PID}
You can locate the PID for your Integration Server several ways. Here are a few commands which can be used to locate the PID, depending on your version and Integration Server type:
  • mqsilist {Int.Node} -d0
  • ps | grep DataFlowEngine
  • ps | grep IntegrationServer
Prior to ACE 11.0.0.9 and IIB 10.0.0.9, there was no functionality in the product to create a Java™ dump.
In some cases, it is not possible to use the Operating System to trigger a dump.
If the Int.Server makes use of the IBM JRE, it is possible to leverage a JavaCompute node within a message flow trigger a dump:
  1. Create a new message flow containing an Input node and a JavaCompute node.
  2. In the JavaCompute node, call the method 'com.ibm.jvm.Dump.JavaDump()'.
  3. Deploy your message flow to the target Integration Server.
  4. Re-create the conditions that necessitate the Java™ dump.
  5. Invoke your message flow by sending a message to the Input node.

Additional Information

Output location
Traces are written to the Integration Server's work directory or the multi-user workpath:
 - {workdir}/config/common/errors
 - /var/mqsi/common/errors
Supported dump types
It is likely that IBM Support will want to collect a Javacore as well as a heapdump.
However, in some cases, it is more beneficial to collect only a specific type of dump.
Use this matrix to replace the dump value "all" in your command for your desired output:
Value Result
heap Produces a Java™ heap dump
core Produces a Java™ core file
system Produces a system dump
all Produces a heap dump, Javacore, and system dump

Document Location

Worldwide

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSDR5J","label":"IBM App Connect Enterprise"},"ARM Category":[{"code":"a8m0z000000brDHAAY","label":"ACEv11"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"},{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNQK6","label":"IBM Integration Bus"},"ARM Category":[{"code":"a8m50000000CiGgAAK","label":"IIB2->Java"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.0.0"}]

Document Information

Modified date:
14 December 2020

UID

ibm16380890