IBM Support

Intermittent network errors or NullPointer exceptions using IBM HTTP Server

Troubleshooting


Problem

Content Engine API client HTTP POST Requests may intermittently fail due to a previous idle keepalive connection being closed by the IBM HTTP Server.

Symptom

Network trace analysis will show that the expiration of the IHS keepalive corresponds to the following TRANSPORT_WSI_NETWORK_ERROR errors in the Content Engine error log:

2012-09-12T08:13:17.670Z 01543E84 WSI FNRCT0042E - ERROR CEWS Listener, unexpected exception (elapsed request time 60462 ms)
com.filenet.api.exception.EngineRuntimeException: FNRCT0042E: TRANSPORT_WSI_NETWORK_ERROR: A network error occurred when processing a Web service request or response. See the nested exception for specific details. See full stack trace for details. Message: Socket operation timed out before it could be completed
at com.filenet.apiimpl.wsi.serialization.Util.ereOrIoe_common(Util.java:676)
at com.filenet.apiimpl.wsi.serialization.TokenReaderNst.<init>(TokenReaderNst.java:94)
at com.filenet.apiimpl.wsi.ServiceSessionNst.sHandleIncomingRequest(ServiceSessionNst.java:914)
at com.filenet.engine.wsi.ListenerNst.service(ListenerNst.java:163)
...
Caused by: javax.xml.stream.XMLStreamException: java.net.SocketTimeoutException: Socket operation timed out before it could be completed
...
Caused by: java.net.SocketTimeoutException: Socket operation timed out before it could be completed
...

Or the following java.lang.NullPointerException:

2012-09-12T08:13:17.835Z 01543E84 WSI FNRCE0000E - ERROR CEWS Listener, problem sending response, first try (elapsed request time 60462 ms)
java.lang.NullPointerException
at com.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.write(BufferedServletOutputStream.java:384)
at com.filenet.apiimpl.wsi.MtomOutputStream.write(MtomOutputStream.java:39)
at java.io.PrintStream.write(PrintStream.java:430)
...

Cause

When using CEWS transport, all Content Engine API requests are performed as HTTP POST actions. The Content Engine API uses the standard JDK classes for the HTTP connection and POST transmission. If the POST is transmitted using an idle HTTP connection after the IHS keepalive expires then network errors will occur.

Resolving The Problem

Disabling the keepalive timeout in the IBM HTTP Server prevents these errors from occurring.

For instructions on how to make this configuration change, refer to the following IBM HTTP Server technote:
http://www-01.ibm.com/support/docview.wss?uid=swg21590497

[{"Product":{"code":"SSNVNV","label":"FileNet Content Manager"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Content Engine","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"5.2.1;5.2.0;5.1.0;5.0;4.5.1;4.5.0;4.0.1","Edition":"All Editions","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 June 2018

UID

swg21617417