Tuesday 7 February 2017

Exception in HttpOutboundMessageContext.RetrieveHttpResponseWork.run: java.io.IOException: SocketMuxer detected socket closure

========================================================================
Applies To:
Linux Version:  OEL-6.5
WLS - 10.3.6
OSB - 11.1.1.7 and later
========================================================================
Problem Summary:
While calling buiness service which has 3DNS endpoint uri of a different domain which is hosted on the same box giving java.io.IOException: SocketMuxer detected socket closure while waiting for a response.

Error:
[WliSbTransports:381304]Exception in HttpOutboundMessageContext.RetrieveHttpResponseWork.run: java.io.IOException: SocketMuxer detected socket closure while waiting for a response
java.io.IOException: SocketMuxer detected socket closure while waiting for a response
 at weblogic.net.http.SocketClosedNotification.<clinit>(SocketClosedNotification.java:10)
 at weblogic.net.http.AsyncResponseHandler$MuxableSocketHTTPAsyncResponse.handleError(AsyncResponseHandler.java:396)
 at weblogic.net.http.AsyncResponseHandler$MuxableSocketHTTPAsyncResponse.hasException(AsyncResponseHandler.java:504)
 at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:827)
 at weblogic.socket.SocketMuxer.deliverHasException(SocketMuxer.java:767)
 at weblogic.socket.EPollSocketMuxer.dataReceived(EPollSocketMuxer.java:222)
 at weblogic.socket.EPollSocketMuxer.processSockets(EPollSocketMuxer.java:177)
 at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
 at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)
 at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
 at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

========================================================================
Root Cause:
Service is failing when using 3DNS where as working fine if we use individual managedServerHost:port url becuase of which suspect goes to 3DNS settings.
During investion found that 3DNS doesn't have SNAT settings enabled for members becuase of which local call which is travelling through network ( from domain1 to domain2 on same host) is failing.

========================================================================
How to verify:
1. Login to MS host and use wget with 3DNS url. You will recevie below error,
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.

2. Use OSB test console to test BS/PS

3. If we use SOAPUI to test service with 3DNS url should work fine.
========================================================================
Resolution:
Permanent Solution:
Configure SNAT for 3DNS members (LTM setting).
Work around:
Change business service endpoint URL from load balancer URL to individual server managedServerHost:port URL.

No comments:

Post a Comment