Hi,
Are there any toold available to analyze the thread dump that is extracted from AppDynamics?
Sample from AppDynamics thread dump:
"ActiveMQ InactivityMonitor Worker" Id=346271 in TIMED_WAITING on lock=java.util.concurrent.SynchronousQueue$TransferStack@bcb2414
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source)
at java.util.concurrent.SynchronousQueue.poll(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked synchronizers: count = 0
Thread dump - kill -3 <pid>
"RMI TCP Connection(idle)" - Thread t@5582
java.lang.Thread.State: TIMED_WAITING
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <2d727c7a> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source)
at java.util.concurrent.SynchronousQueue.poll(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
Appreciate your help!!!
Thanks,
Payal
We created a custom solution for this - It parses the thread sumps produced by AppD to a more general format produced by command such as kill -3 <pid>. Once done, we can use any tool with it.
Thanks,
Payal
Hi, we have the same problem, can you provide this tool/script?
can appdynamics provide a tool to analyse thread dumps which are created with appdynamics?