How to Locate Connection Leak in Websphere
Websphere connection manager generally will timeout orphaned connections and send it back to connection pool for reuse. If threads do timeout waiting for connection, connection manager will raise Connectionwaittimeoutexception at websphere logs.
Common reason for connection leak is , application not using connection.close() call at finally{} code block. When trace is enabled, Websphere connection pool manager will print stack traces detailing how long connection been in use.
It only prints trace information if connection was in use for more than 10 seconds. This interval is unchangeable without IBM support assistance.
Let’s gather connection leak trace …
Navigate to Logging and Tracing > %Application_Server_Name%> Diagnostic Trace Service > Change Log Detail Level
Alter the logging level as “*=info: ConnLeakLogic=finest”
If you want to see all options availble click on “ConnLeakLogic” which will give you options like screenshot below, select finest.
You may have to restart Application server to see log being created $WAS_HOME/Profiles/node/logs/%Server_Name%/trace.log
Search Trace.log for keyword “Connection Leak Logic Information”. If present you know there are connections being used for more than 10 sec.
In an example above doGet method is using connection for 20 sec i.e 10 sec ping time +11 sec in use time.
Leave a Reply
You must be logged in to post a comment.