Thread Dump Analysis — Are Your Applications Hanging by a Thread?

  • by Shanthi Sivasubramaniam, Technical Director, Sustain Systems Limited
  • June 29, 2009
Learn how you can use a Thread Dump Analysis in SAP Solution Manager to identify performance problems in the Java stack and isolate the problem to a specific Java package or application.
Key Concept

An important part of performance tuning on the Java stack is to create and perform a Thread Dump Analysis. Thread Dump Analysis is one of the tools integrated into Solution Manager Diagnostics, and it provides valuable insights into the status of your system’s Java thread activity.

If a Java application is performing slowly or the average response time per user click is not acceptable, you can start with some initial performance-tuning activities to determine the problem. After using End-to-End Workload Analysis to determine that the component causing a problem is a Java component, the next step is to identify any possible resource bottlenecks (e.g., CPU, disk, or memory problems). If these are not the problem, you can then use Thread Dump Analysis to examine the state of the Java thread activity and find threads that might be blocked or in a deadlock.

Why is a Thread Dump Analysis the next logical step? The answer involves the fact that SAP NetWeaver Java Application Server is multi-threaded. When an application is executed on the Java stack, a number of threads are created and destroyed as required by that application. Threads allow a sequence of executing instructions to run independently from other threads, but they can also share data with other threads. If there is a performance problem on the server process, it is only possible to monitor the status of the server process using standard tools. You cannot monitor thread statuses with standard tools, however. This is because threads exist within a server process in the Java application server, and information about these threads is not easily available. To solve this, Thread Dump Analysis allows you to take a “snapshot” of the state of all Java threads in the server process at a particular time. Using this information, you can identify the particular Java application that may be causing problems.

Shanthi Sivasubramaniam

Shanthi Sivasubramaniam is an independent trainer and consultant based in the United Kingdom with more than 13 years of SAP experience. During this time, she has held positions as a technical consultant and trainer with KPMG Malaysia, Logica, and SAP UK. She has worked on numerous SAP projects in Europe and Asia and has delivered SAP training courses all over Europe, South Africa, and the Middle East, focusing specifically on SAP administration and SAP Solution Manager courses. Shanthi has been working with SAP Solution Manager from the time it was first introduced and has helped numerous customers install and configure the various functionalities available. She has a degree in information technology and business information systems and is an SAP-certified technology professional and associate for platform technology with SAP NetWeaver 7.0, a solution consultant for SAP Solution Manager 7.0 operations, E2E application management expert in Root Cause Analysis, change control management, process integration, and automation optimization, and has a number of other SAP certifications.

See more by this author


No comments have been submitted on this article. 

Please log in to post a comment.

To learn more about subscription access to premium content, click here.