/ How to analyze Thread Dump – part 1 ~ Java EE Support Patterns


How to analyze Thread Dump – part 1

This article is part #1 of a series of posts that will teach you how to analyze a JVM Thread Dump and pinpoint the root cause of your problem(s). From my perspective, Thread Dump analysis is the most important skillset to master for any individual involved in Java EE production support. The amount of information that you can derive from Thread Dump snapshots is often much beyond than what you can think of.

My goal is to share with you my knowledge on Thread Dump analysis that I accumulated over the last 10 years e.g. hundreds of Thread Dump analysis cycles with dozens of common problem patterns across many JVM versions and JVM vendors.

Please bookmark this page and stay tuned for weekly articles.
Please also feel free to share this Thread Dump training plan with your work colleagues and friends.

** UPDATE: Thread Dump analysis tutorial videos now available here.

Sounds good, I really need to improve my Thread Dump skills… so where do we start?

What I’m proposing to you is a complete Thread Dump training plan. The following items will be covered. I will also provide you with real life Thread Dump examples that you can study and understand.

      1)      Thread Dump overview & fundamentals
      2)      Thread Dump generation techniques and available tools
      3)      Thread Dump format differences between Sun HotSpot, IBM JRE and Oracle JRockit
      4)      Thread Stack Trace explanation and interpretation
      5)      Thread Dump analysis and correlation techniques
      6)      Thread Dump common problem patterns (Thread race, deadlock, hanging IO calls, garbage collection / OutOfMemoryError problems, infinite looping etc.)
      7)      Thread Dump examples via real life case studies

I really hope this Thread Dump analysis training plan will be beneficial for you so please stay tuned for weekly updates and articles!

But what if I still have questions or still struggling to understand these training articles?

Don’t worry and please consider me as your trainer. I strongly encourage you to ask me any question on Thread Dump (remember, there are no stupid questions) so I propose the following options to you for free; simply chose the communication model that you are more comfortable with:

      1)      Submit your Thread Dump related question(s) by posting your comment(s) below the article (please feel free to remain Anonymous)
      2)      Submit your Thread Dump data to the Root Cause Analysis forum
      3)      Email me your Thread Dump related question(s) @phcharbonneau@hotmail.com

Can I send you my Thread Dump data from my production environment / servers?

Yes, please feel free to send me your generated Thread Dump data via email or Root Cause Analysis forum if you wish to discuss the root cause of your problem(s). Real life Thread Dump analysis is always the best way to learn.

I really hope that you will enjoy and share this Thread Dump analysis training plan. I will do my very best to provide you with quality material and answers to any question.

You can now jump to the part 2 of the series (JVM Overview)


Hi Vidyadhar,

I will release the next post by the end of next week.


Hi Vidyadhar and all,

Sorry for delay on the next article, will do my very best to complete this week.

Thanks again.


The part 2 (JVM overview) of the series of now available. Thanks.


Thanks P-H for putting these series. worth reading for every Java developer. By the way I have also shared few Java debugging tips on Eclipse you may like.

Thanks Javin,

I hope Java & Java EE developers community will appreciate it as this is just the beginning..You can also have a look at the official consolidated tutorial on Java Code Geeks:



Hi PH,

After analysis of the thread dump, what is the fix for the problem. Is it code chages that needs to be done,?? What kind of solutions generally are taken after a thread dump analysis.



JVM Thread Dump analysis is done for root cause analysis. The solution will depend of the type of problems and can be anything from code change to JVM tuning. Future articles on Thread Dump will provide problem patterns along with possible solutions.


Post a Comment