/ Thread Dump analysis ~ Java EE Support Patterns

Thread Dump analysis

This page provides a consolidated of all articles and tutorials related to JVM Thread Dump analysis. Thread Dump analysis is a very important skill to master for any individual involved in Java EE production support and I highly recommend that you read all of these articles below.

Thread Dump analysis training plan

Java Deadlock


Training Videos

12 comments:

Hi,

Really good work. Very much appreciated.

This will helps me and other too.

Keep this good work.

Regards,
Peter Jerald

Thanks Peter,

I will release more thread dump related posts shortly, including problem pattern analysis.

Regards,
P-H

Very very nice and Very much Explanatory ...if you get chane please provide vedios...

Thanks
Narasimha

Thank you.

I will create more thread dump analysis shortly.

Regards,
P-H

very help full .. please keep up the good work

Thanks and Regards
Naveen Burman

very helpful .....thanks you...pierre

Thanks, I'm currently working on a Thread dump analysis tips and ticks article to be released in the next 1-2 weeks.

Thanks.
P-H

Hey Pierre,
Can you briefly look at this thread dump?
"AD Thread Pool-CSS9" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7097bbb8 WAITING

sun.misc.Unsafe.park(Native Method)

java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

java.util.concurrent.DelayQueue.take(DelayQueue.java:160)

com.singularity.ee.util.de.c(de.java:523)

com.singularity.ee.util.de.take(de.java:516)

com.singularity.ee.util.ge.a(ge.java:487)

com.singularity.ee.util.sb.run(sb.java:691)

java.lang.Thread.run(Thread.java:662)

"Thread-45" waiting for lock com.comergent.dcm.cron.RunQueue@a908faf TIMED_WAITING

java.lang.Object.wait(Native Method)

com.comergent.dcm.cron.RunQueue.dequeue(RunQueue.java:231)

com.comergent.dcm.cron.RunQueue$RunRunnable.run(RunQueue.java:140)

"[STANDBY] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@18c92f94 WAITING

java.lang.Object.wait(Native Method)

java.lang.Object.wait(Object.java:485)

weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:162)

weblogic.work.ExecuteThread.run(ExecuteThread.java:183)

"AD Thread Pool-CSS8" waiting for lock java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7097bbb8 WAITING

sun.misc.Unsafe.park(Native Method)

java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)

java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)

java.util.concurrent.DelayQueue.take(DelayQueue.java:160)

com.singularity.ee.util.de.c(de.java:523)

com.singularity.ee.util.de.take(de.java:516)

com.singularity.ee.util.ge.a(ge.java:487)

com.singularity.ee.util.sb.run(sb.java:691)

java.lang.Thread.run(Thread.java:662)

"[ACTIVE] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@58469848 WAITING

java.lang.Object.wait(Native Method)

java.lang.Object.wait(Object.java:485)

weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:162)

weblogic.work.ExecuteThread.run(ExecuteThread.java:183)

"[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@6655a179 WAITING

java.lang.Object.wait(Native Method)

java.lang.Object.wait(Object.java:485)

weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:162)

weblogic.work.ExecuteThread.run(ExecuteThread.java:183)
Guy

Hi Guy,

Not much going on this thread dump, were you facing any particular slowdown condition?

NOTE: this is a partial thread dump, i would recommend that you review each and every thread of WebLogic e.g. ExecuteThread: 'XYZ'

Please re-post further details, if any, from the WebLogic threads.

Regards,
P-H

hi, your articles were very nice and informative. I m new to analysis of thread dump and need you help with some trouble shooting. In our load environment we are seeing very low TPS and when we get the thread dumps
I noticed there are lot of thread in below state (like 900 odd threads). Does this mean anything or its
just an idle thread waiting for work to be assigned




"EventHandler-thread-352" prio=10 tid=0x00007fb5c8012800 nid=0x5e35 waiting on condition [0x00007fb2069af000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000648995a58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)

You are amazing, please keep up the good work.

Post a Comment