Java developers tend to use 'java.util.UUID#randomUUID()' API, to generate a UUID (Universally Unique Identifier) number (i.e., 'b8bbcbed-ca07-490c-8711-5118ee0af2f9'). Under certain circumstances, using this API can affect your application’s availability. Let’s discuss this API in this post with a real-world example. Video:... Continue Reading →
ConFoo Montreal is a multi-technology conference for developers. Our Architect Ram Lakshmanan has been invited there to present on the topic "16 artifacts to capture when there is a production problem", which has secured 5th place among 155 sessions. Production... Continue Reading →
A thread dump is a snapshot of all the threads running in a java process. It’s a vital artifact to troubleshoot various production problems such as CPU spikes, unresponsiveness in the application, poor response time, hung threads, high memory consumption.... Continue Reading →
Java Virtual Machine (JVM) generates 3 critical artifacts that are useful for optimizing the performance and troubleshooting production problems. Those artifacts are: Garbage collection (GC) logThread DumpHeap Dump In this article let us try to understand these 3 critical artifacts,... Continue Reading →
To troubleshoot a production problem, you might have to analyze multiple snapshots of thread dumps captured at periodic intervals. Each snapshot of thread tends to contain hundreds of threads, sometimes even thousands of threads. Each thread in the thread dump... Continue Reading →
Thread dumps are vital artifacts to debug & troubleshoot production performance problems. Thread dump files tend to span for several hundreds of lines (sometimes a few thousands of lines). It is hard to conceive and assimilate all the information in... Continue Reading →
Thread dumps are vital artifacts to troubleshoot/debug production problems. In the past we have discussed several effective thread dump troubleshooting patterns like: traffic jam, treadmill, RSI, all roads lead to rome ………. In this article we would like to introduce... Continue Reading →
Threads that are throwing Exception or Errors should be investigated. Because those threads stack trace indicates the origin of the problem. Below is the stack trace of the thread that is throwing java.lang.OutOfMemoryError: Thread 0x3ff781e764e0 at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48) at java.lang.ClassLoader.defineClass1(Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;... Continue Reading →
When there are several hundreds or thousands of threads in the thread dump, the user might want to search threads based on thread name, thread Id, stack trace … Here are a few sample cases: Find all the threads which... Continue Reading →