WebSphere Threads servicing SSL connections might be blocked by the closing handshake write

http://www-01.ibm.com/support/docview.wss?uid=swg1PI70332

Exception:

[9/4/17 19:58:14:215 AEST] 0000010f ThreadMonitor W CWWSR0605W: Thread “WebContainer : 5” (000001c0) has been active for 645241 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung.
at java.lang.Thread.yield(Native Method)
at com.ibm.ws.ssl.channel.impl.SSLUtils.flushCloseDown(SSLUtils.java:243)
at com.ibm.ws.ssl.channel.impl.SSLUtils.shutDownSSLEngine(SSLUtils.java:123)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.cleanup(SSLConnectionLink.java:225)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.close(SSLConnectionLink.java:169)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.close(HttpInboundLink.java:884)
at com.ibm.wsspi.channel.base.InboundApplicationLink.close(InboundApplicationLink.java:58)
at com.ibm.ws.webcontainer.channel.WCChannelLink.close(WCChannelLink.java:169)
at com.ibm.ws.webcontainer.channel.WCChannelLink.releaseChannelLink(WCChannelLink.java:298)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:222)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1820)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)

 

Problem conclusion

  • The SSL Channel was modified so that the closing handshake write
    no longer blocks the thread and provides a timer to control how
    long the channel will attempt to complete the write. A new
    system property was added to enable the timer for all SSL
    channels that are created. The property is
    "timeoutValueInSSLClosingHandshake" and accepts an integer value
    to configure the amount to wait (in seconds) before giving up on
    completing the write. The default value for this property is -1,
    which means the channel will wait indefinitely for the write to
    complete.
    
    
    It can be set as JVM custom property on the following panel:
    
    Application Servers > {Server Name} > Process definition > Java
    Virtual Machine > Custom properties
  •  
  •  
  •  
  •  

Viet Luu has written 318 articles

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Buy Me A Coffee

We are thankful for your never ending support.

Leave a Reply