2012년 1월 17일 화요일

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


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.

ServerIOTimeOut = 0 & PostBufferSize > 0
When set to zero, we are relying on the OS timeout. Otherwise, we operate the same as if the ServerIOTimeOut was a positive value.
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.

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 app 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
Content was not buffered, therefore 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

댓글 없음:

댓글 쓰기