Consultor Eletrônico



Kbase P110855: Errors (10893), (11506) and (10899) when making a Web Service request after an AppServer shutdown
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   11/11/2009
Status: Verified

SYMPTOM(s):

Errors (10893), (11506) and (10899) when making a Web Service request after an AppServer shutdown

Web service operation <operation-name> generated a SOAP Fault. SOAP faultstring is: An error was detected while executing the Web Service request. (10893) (11506)

An error was detected while executing the Web Service request. (10893)

Web service operation <operation-name> generated a SOAP Fault. SOAP faultstring is: <fault-string> (11506)

A network error occurred executing the Web Service application. (10899)

Restarted the AppServer Broker that is being used by the Web Service

The SOAP fault is generated only for the first Web Service request after the AppServer is restarted

Subsequent requests to the Web Service work just fine

This only occurs with the Session Free Model of Web Service

The AppServer Broker used by the Web Service has an Operating Mode of State-free

The following JAVA Exceptions appear in the WSA log file

com.progress.ubroker.client.BrokerSystem$BrokerSystemCommunicationsException: Client Communications Failure - java.net.SocketException: Software caused connection abort: recv failed (8409)

Client Communications Failure - <Java Exception> (8409)

DISCONNECT IOException: java.net.SocketException: Software caused connection abort: socket write error

com.progress.open4gl.Open4GLException: Disconnect failure: NULL.

Error in SOAP request execution: Communication layer message: Client Communications Failure - java.net.SocketException: Software caused connection abort: recv failed (8409). (7175) (10926)

Error in SOAP request execution: Communication layer message: Client Communications Failure - java.io.EOFException (8409). (7175) (10926)

FACT(s) (Environment):

OpenEdge 10.x
All Supported Operating Systems

CAUSE:

This is working as expected.

If an error occurs while attempting to run a procedure on a session-free connection, the WSA cannot recover from the error by re-trying the request on another connection. This is because of the way that errors are detected when requests fail.

If a request is run using a socket that has been disconnected by the remote node (e.g. the broker has been shut down and brought back up), no error is given when sending the request: the client thinks that the request has been successfully sent. However, when the client attempts to receive the response, the exception is thrown.

Given that errors are not detected when sending the request, the client cannot determine if the request was actually sent or not. This means that the request cannot be retried on another connection because this could cause the request to be run twice (if the first send didn't actually fail).

FIX:

After restarting the AppServer Broker, perform one of the following steps in order to avoid the broken communication between the WSA and the AppServer:
- Re-enable the Web Service by issuing the following commands:

wsaman -name wsa1 -appname YourWebServiceName -disable
wsaman -name wsa1 -appname YourWebServiceName -enable

- OR -

- Reload the WSA by shutting down and restarting the JSE (Tomcat, for instance).