|
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 |
|
|
|
|
|
|
|