- Fuse ESB
- Fuse MB
How do I obtain a full thread dump of a Fuse ESB/Message Broker/Mediation Router/Services Framework process.
What kill level will force full thread dump?
In order to obtain a full thread dump of any of the FUSE product suite's processes, you can run the following command on Unix:
$ kill -3 <pid>
(where pid is the ESB process id)
In windows start the Fuse process in a command shell and hit Ctrl+Break.
Alternatively the 1.5 JDK includes the 'jps' and 'jstack' command line tools.
Use jps to determine the processId and then jstack to obtain the stack trace:
$ jps 3658 Main $ jstack 3658 Attaching to process ID 3658, please wait... Debugger attached successfully. Server compiler detected. JVM version is 1.5.0_16-b02 Thread 6517: (state = BLOCKED) - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame) - java.util.concurrent.locks.LockSupport.parkNanos(long) @bci=11, line=146 (Interpreted frame) - java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(int, long) @bci=77, line=807 (Interpreted frame) - java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(int, long) @bci=25, line=1122 (Interpreted frame) - java.util.concurrent.SynchronousQueue$Node.waitForPut(long) @bci=3, line=291 (Interpreted frame) - java.util.concurrent.SynchronousQueue.poll(long, java.util.concurrent.TimeUnit) @bci=99, line=443 (Interpreted frame) - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=77, line=475 (Interpreted frame) - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame) - java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.