IBM Support

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

Question & Answer


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.

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Plug-in","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.5.5;8.5;8.0;7.0.0.9;7.0.0.7;7.0.0.5;7.0.0.3;7.0.0.29;7.0.0.27;7.0.0.25;7.0.0.23;7.0.0.21;7.0.0.19;7.0.0.17;7.0.0.15;7.0.0.13;7.0.0.11;6.1.0.47;6.1.0.45;6.1.0.43;6.1.0.41;6.1.0.39;6.1.0.37;6.1.0.35;6.1.0.33;6.1.0.31;6.1.0.29;6.1.0.27;6.1.0.25;6.1.0.23;6.0.2.43;6.0.2.41;6.0.2.39;6.0.2.37;6.0.2.35;6.0.2.33","Edition":"Base;Express;Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
23 June 2018

UID

swg21408884