How to identify and kill “orphan” application server connections
Estimated Reading Time: 2 MinutesSometimes a client connection can get disconnected from the application server, but still run in a loop in the background. This might happen, for instance, if a program crashes or is killed ‘ungracefully’.
The application server’s panel can help you identify and terminate these sessions to free up CPU and memory in the server.
First, run the panel:
isclient -hostname <ip-address> -port <port#> -panel
Click on the TID column to order the connections by TID.
Then switch to the threads view. It may help to open a second panel window rather than switching back and forth between the client view and the threads view. Click on the CPU column header to order by CPU usage, so the threads with the highest CPU are listed first. Hold down the Control key and click on the NAME column to order the table further by the NAME column.
The number after “IscobolThread-“ is the TID number. Compare the two TID numbers. f the thread is shown on the Thread View column but not in the list of connected clients in the Client view – the thread is an “orphan” that can be terminated.
Right click on the thread in the Thread view and choose “Terminate Selected”. It will display a “are you sure” type of message. Click on the checkbox and then “Terminate”.
NOTES:
- A TID may have several threads listed in the thread view. Be sure to terminate all of them.
- The “R-“ in the thread name means the program was launched with a CALL RUN.
- The “T-“ in the thread name means the thread was launched with a CALL THREAD or PERFORM THREAD.
- Below the list of threads is the thread stack for the chosen thread. This will help you identify the program and paragraph that is ‘looping’.