Consultor Eletrônico



Kbase P160154: Getting errors in AIA log indicating failure to send information.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/13/2010
Status: Unverified

SYMPTOM(s):

Getting errors in AIA log indicating failure to send information.

Getting errors in AppServer Broker log indicating failure to send information due to socket write error.

Tomcat log shows error ErrorDispatcherValve[localhost]: Remote Client
Aborted Request, IOException: Software caused connection abort: socket
write error

Tomcat log shows error org.apache.jk.core.MsgContext action
WARNING: Error sending end packet
java.net.SocketException: Software caused connection abort: socket write
error

[10/02/03@17:24:20.489-0600] P-002748 T-C-0004 1 UB ---------- Client FSM Error : Invalid ACTION for STATE : state= 0 STATE_IDLE event= 8 EVENT_ERROR action= 10 nextState= 9 STATE_OBLIVION . (8087)

[10/02/03@18:53:29.933-0600] P-002748 T-C-0003 1 UB ---------- Cannot write response message. (8420)

[10/02/03@18:53:29.933-0600] P-002748 T-C-0003 1 UB ---------- java.net.SocketException: Software caused connection abort: socket write error
---------- at java.net.SocketOutputStream.socketWrite0(Native Method)
---------- at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
---------- at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
---------- at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
---------- at java.io.BufferedOutputStream.write(BufferedOutputStream.java:104)


FACT(s) (Environment):

Using stateless mode for AppServer.
All Supported Operating Systems
OpenEdge 10.2x
OpenEdge 10.1C
OpenEdge Server Technology Category: AppServer

CAUSE:

The client application is closing the TCP connection because it has exceed an idle connection timeout setting.

FIX:


Use the soReadTimeout parameter for the AppServer Internet Adapter to send a KeepAlive packet to the client application to prevent it from timing out when the AppServer is taking more time to complete the requested action than the client is configured to wait.
The default value for soReadSocket is 240 seconds if no value is specified.

The description of the parameter from the ubroker.properties.README file:
soReadTimeout=240
Specifies the amount of time, in seconds, the Aia adapter will wait for
a response from an AppServer before sending a "keepalive" message to
the client. The value of 0 specifies that the "keepalive" message is
not used. If the property is not specified, the default value (240)
will be assumed.

NOTE: After this value is changed, the AdminServer and the Java Servlet Engine should both be restarted.