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) @firstname.lastname@example.org
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)