SocketException in WebSphere AppServer WebServices client sending a SOAP message leads to a loop sending the SOAP message until the send complete successfully.
 Technote (FAQ)
 
Problem
If a WebServices client is able to establish the socket connection but then gets a SocketException before it has completed sending the WebServices message, then it will continually loop retrying to send the WebServices message. This appears to a user to be a hang of the WebService application, since there is nothing that will stop the SOAP message from being sent again.
 
Cause
If the WebServices server closes the connection before the WebSphere WebServices client has sent the message, then WebSphere will retry the send. If it continues to get a SocketException, it will continue to retry. This will appear to a user as though the WebService client has hung.

A trace of WebServices=all=enabled shows these events
[11/11/05 11:01:09:692 PST] 1c6e268f HTTP11Sender d com.ibm.ws.webservices.engine.transport.http.HTTP11Sender Connection closed: java.net.SocketException: unable to read response code - HTTP11Sender::invoke
[11/11/05 11:01:09:692 PST] 1c6e268f HTTP11Sender$ d com.ibm.ws.webservices.engine.transport.http.HTTP11Sender$WrappedSocket Enter: WrapperSocket::destroy, Socket[addr=ecpr-et.ibm.com/10.250.50.84,port=4444,localport=47565]
[11/11/05 11:01:09:693 PST] 1c6e268f HTTP11Sender$ d com.ibm.ws.webservices.engine.transport.http.HTTP11Sender$WrappedSocket Exit: WrapperSocket::destroy, Socket[addr=ecpr-et.ibm.com/10.250.50.84,port=4444,localport=47565]

Also, the tcpmon trace would show that a valid SOAP message is sent out but the response message is not a valid SOAP message.

 
Solution
The only solution is to be certain that the WebServices server sends back a proper SOAP response. The "unable to read response code" means that the WebSphere Web Services engine tried to read the SOAP response message, but the SOAP response message was malformed, and did not contain a SOAP response code. The Web Sphere Web Services code automatically retries the message. If the WebService target continues to respond with the malformed SOAP message, the WebService will continually retry.

To stop the WebServices application that is looping, you can stop and restart the EAR that contains the client application via the WebSphere AppServer Admin Console.

 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > Web Services (for example: SOAP or UDDI or WSGW or WSIF)
Operating system(s): z/OS
Software version: 6.0.2
Software edition:
Reference #: 1226670
IBM Group: Software Group
Modified date: Dec 29, 2005