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¶meter=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:
- Create a new message flow containing an Input node and a JavaCompute node.
- In the JavaCompute node, call the method 'com.ibm.jvm.Dump.JavaDump()'.
- Deploy your message flow to the target Integration Server.
- Re-create the conditions that necessitate the Java™ dump.
- 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:
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 |
Related Information
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"}]
Was this topic helpful?
Document Information
Modified date:
14 December 2020
UID
ibm16380890