Primary and backup servers cluster two-level failover
WebSphere V5 supplies a two-level failover functionality. When the plugin-cfg.xml is generated, all servers are initially listed under the PrimaryServers tag. You can manually move selected servers to be listed under the BackupServers tag, as shown in Example 9-1.
Example 9-1 Primary and Backup Server lists in plugin-cfg.xml
<PrimaryServers><Server Name="HAClusterServer1"/><Server Name="HAClusterServer3"/></PrimaryServers><BackupServers>Server Name="HAClusterServer2"/><Server Name="HAClusterServer4"/></BackupServers>
The Web server plug-in will not route requests to any server in the Backup Server list as long as there are appservers available from the Primary Server list. Within the PrimaryServers, the plug-in routes traffic according to server weight and/or session affinity. When all servers in the Primary Server list are unavailable, the plug-in will route traffic to the first available server in the Backup Server list. If the first server in the Backup Server list is not available, the request will be routed to the next server in the Backup Server list. Weighted round robin routing is not performed for the servers in the Backup Server list. The plug-in just uses one server at a time. Refer to Primary and backup servers for more details on how the plug-in performs the server selection.
This two-level failover mechanism provides more advanced failover support, allowing better use of available server capacity.
Typical two-level failover behavior is shown in the trace in Example 9-2.
Example 9-2 Two-level failover trace
TRACE: ws_server_group: serverGroupAddPrimaryServerName: adding WebHAbbMember1 to primary server listTRACE: ws_server_group: serverGroupAddPrimaryServerName: adding WebHAbbMember3 to primary server listTRACE: ws_server_group: serverGroupAddBackupServerName: adding WebHAbbMember2 to backup server listTRACE: ws_server_group: serverGroupAddBackupServerName: adding WebHAbbMember4 to backup server listTRACE: ws_server_group: serverGroupGetFirstServer: getting the first serverTRACE: ws_server_group: serverGroupGetNextServer: getting the next serverOnly primary servers participate weighted Round Robin:TRACE: ws_server_group: serverGroupNextRoundRobinServer: Round Robin load balancingTRACE: ws_server_group: serverGroupNextRoundRobinServer: numPrimaryServers is 2TRACE: ws_server_group: assureWeightsValid: group WebHAClusterTRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary serverTRACE: ws_server_group: sum_wlb_weights: WebHAbbMember1: 1 max, 0 cur.TRACE: ws_server_group: serverGroupGetNextPrimaryServer: getting the next primary serverTRACE: ws_server_group: sum_wlb_weights: WebHAbbMember3: 1 max, 0 cur.TRACE: ws_server_group: serverGroupGetNextPrimaryServer: getting the next primary serverTRACE: ws_server_group: sum_wlb_weights := 0TRACE: ws_server_group: serverGroupGetFirstServer: getting the first serverTRACE: ws_server_group: serverGroupGetNextServer: getting the next serverTRACE: ws_server_group: serverGroupGetNextServer: getting the next serverTRACE: ws_server_group: serverGroupGetNextServer: getting the next serverTRACE: ws_server_group: serverGroupGetNextServer: getting the next server--------------Retry another oneTRACE: ws_server_group: serverGroupCheckServerStatus: Checking status of WebHAbbMember3, ignoreWeights 0, markedDown 1, retryNow 1, wlbAllows 1TRACE: ws_server_group: serverGroupCheckServerStatus: Time to retry server WebHAbbMember3TRACE: ws_server_group: lockedServerGroupUseServer: Server WebHAbbMember3 picked, weight 0.TRACE: ws_common: websphereFindTransport: Finding the transportTRACE: ws_common: websphereFindTransport: Setting the transport: 10.55.90.84 on port 9081TRACE: ws_common: websphereExecute: Executing the transaction with the app serverTRACE: ws_common: websphereGetStream: Getting the stream to the app serverTRACE: ws_transport: transportStreamDequeue: Checking for existing stream from the queueERROR: ws_common: websphereGetStream: Failed to connect to app server, OS err=10061ERROR: ws_common: websphereExecute: Failed to create the streamERROR: ws_server: serverSetFailoverStatus: Marking WebHAbbMember3 downERROR: ws_common: websphereWriteRequestReadResponse: Failed to execute the transaction to 'WebHAbbMember3'; will try another oneTRACE: ws_server_group: serverGroupNextRoundRobinServer: Round Robin load balancingTRACE: ws_server_group: serverGroupNextRoundRobinServer: numPrimaryServers is 2TRACE: ws_server_group: assureWeightsValid: group WebHAClusterTRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first-----------------Get backup ServerTRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary serverTRACE: ws_server_group: serverGroupCheckServerStatus: Checking status of WebHAbbMember1, ignoreWeights 0, markedDown 1, retryNow 0, wlbAllows 1TRACE: ws_server_group: serverGroupCheckServerStatus: Server WebHAbbMember1 is marked down; retry in 60ERROR: ws_server_group: serverGroupNextRoundRobinServer: Failed to find a server; all could be downTRACE: ws_server_group: serverGroupGetNextUpBackupServer: Getting the next up backup serverTRACE: ws_server_group: serverGroupGetFirstBackupServer: getting the first backup serverTRACE: ws_server_group: serverGroupCheckServerStatus: Checking status of WebHAbbMember2, ignoreWeights 1, markedDown 0, retryNow 0, wlbAllows 1TRACE: ws_common: websphereFindTransport: Finding the transportTRACE: ws_common: websphereFindTransport: Setting the transport:10.55.90.22 on port 9082TRACE: ws_common: websphereExecute: Executing the transaction with the app serverTRACE: ws_common: websphereGetStream: Getting the stream to the app serverTRACE: ws_transport: transportStreamDequeue: Checking for existing stream from the queue
Prev | Home | Next WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.
IBM is a trademark of the IBM Corporation in the United States, other countries, or both.