IBM Support

How do the properties ServerIOTimeout and PostBufferSize affect plug-in behavior?

Technote (FAQ)


Question

When ServerIOTimeout expires for a Post request, will plug-in mark down the server or retry the request?

Cause

The value placed on ServerIOTimeOut will dictate if the server will be marked down for a failing request. The value placed on PostBufferSize will dictate if the request can be retried.

Answer

To better understand the plug-in behavior, it is better to break down by the values of ServerIOTimeout and PostBufferSize.

ServerIOTimeOut > 0 & PostBufferSize > 0
Plug-in looks to see if the failure occurred over an existing socket. If so, the plug-in will attempt that same server assuming the socket may have been closed by the application server previously. If that same server still has a problem, then the plug-in will not mark down that server, but just fail over to the next one.
NOTE - If you are using affinity and the server is not marked down because ServerIOTimeOut > 0, the same server will be chosen again and retried. If you do not want the same server retried when using affinity, use a negative ServerIOTimeOut.
NOTE - If a server cluster has only one server, plug-in will not retry.

ServerIOTimeOut = 0 & PostBufferSize > 0
When set to zero, plug-in does not time out. Plug-in uses blocked I/O to write request to and read responses from the cluster member until the TCP connection is broken (if it is ever broken). If TCP connection is broken, plug-in operates the same as if ServerIOTimeOut > 0.

ServerIOTimeOut < 0 & PostBufferSize > 0
Plug-in looks to see if the failure occurred over an existing socket. If so, the plug-in will attempt that same server assuming the socket may have been closed by the application server previously. If that same server still has a problem, the plug-in will mark down that server and fail over to the next one.


ServerIOTimeOut > 0 & PostBufferSize = 0
Content was not buffered, therefore a 500 is returned and server is not marked down.

ServerIOTimeOut = 0 & PostBufferSize = 0
When ServerIOTimeout is set to zero, plug-in does not time out. Plug-in uses blocked I/O to write request to and read responses from the cluster member until the TCP connection is broken (if it is ever broken). If TCP connection is broken, a 500 is returned and server is not marked down.

ServerIOTimeOut < 0 & PostBufferSize = 0
Content was not buffered, therefore a 500 is returned and server is marked down.

This change was implemented with Fix Pack 6.0.2.33, 6.1.0.23 and 7.0.0.3. Prior to this, plug-in never marked the server down with ServerIOTimeOut.

Related information

PK72097: PLUGIN DOES NOT SET MARK DOWN WHEN THE SERVERI
Webserver Plugin configuration

Document information

More support for: WebSphere Application Server
Plug-in

Software version: 6.0.2.33, 6.0.2.35, 6.0.2.37, 6.0.2.39, 6.0.2.41, 6.0.2.43, 6.1.0.23, 6.1.0.25, 6.1.0.27, 6.1.0.29, 6.1.0.31, 6.1.0.33, 6.1.0.35, 6.1.0.37, 6.1.0.39, 6.1.0.41, 6.1.0.43, 6.1.0.45, 6.1.0.47, 7.0.0.3, 7.0.0.5, 7.0.0.7, 7.0.0.9, 7.0.0.11, 7.0.0.13, 7.0.0.15, 7.0.0.17, 7.0.0.19, 7.0.0.21, 7.0.0.23, 7.0.0.25, 7.0.0.27, 7.0.0.29, 8.0, 8.5, 8.5.5

Operating system(s): AIX, HP-UX, Linux, Solaris, Windows

Software edition: Base, Express, Network Deployment

Reference #: 1408884

Modified date: 13 April 2010


Translate this page: