Software AG Products 10.7 | Integrating On-Premises and Cloud Applications | Administering Integration Server | Diagnosing the Integration Server | Generating Thread Dumps
 
Generating Thread Dumps
 
Generating a Dump of an Individual Thread
Generating a Dump of the JVM
If Integration Server or a subsystem becomes slow or unresponsive, or users are unable to log into Integration Server, you can generate thread dumps to help you diagnose the problem. A thread dump can help you locate thread contention issues that can cause thread blocks or deadlocks.
You can generate thread dumps of the following:
*The JVM in which the Integration Server is running
*Individual threads running on Integration Server
Based on the information you obtain from these thread dumps, you might be able to correct the problem.
If you detect a problem with a thread that is associated with a user-written Java service or a flow service, you have the option of canceling or killing the thread.
When you cancel a thread, Integration Server frees up resources that are held by the thread and returns the thread to the thread pool. If Integration Server cannot cancel the thread, it gives you the option of killing the thread. When you kill a thread, Integration Server terminates the thread and adds a new one to the thread pool. For more information about canceling and killing service threads, see Canceling and Killing Threads Associated with a Service.
The following example describe how you might use the JVM thread dump and individual thread dumps to diagnose and fix problems.
Scenario 1: A Service Is Running Longer than Expected
1. A Flow service has been running for a very long time. You suspect the service is in an infinite loop, or is waiting for external resources that are not available.
2. You log in through the Integration Server primary port and navigate to the Server > Statistics > System Threads page.
3. On the System Threads page you see threads that are associated with the service in question. You look at individual dumps of those threads.
4. Using the information provided in the dumps, you determine that the threads are experiencing contention issues.
5. You cancel the threads. This action allows the service to complete.
Scenario 2: The Server Is Unresponsive, Users Cannot Log In Through the Primary Port
1. Integration Server is unresponsive and no one can log in through the primary port.
2. You log in through the diagnostic port and navigate to the Server > Statistics > System Threads page.
3. On the System Threads page you see multiple threads for the same service. You look at individual dumps of those threads.
4. Based on the information provided in the dumps, you try canceling the threads. The problem persists.
5. You try killing the threads. The problem persists.
6. You perform a JVM dump.
7. Using the information provided in the JVM dump, you determine the cause of the problem and are able to resolve it.
The following procedures show how to generate dumps for individual threads and for the JVM.