Cluster member health

Typically, hardware or software load balancers check the health of the various cluster members and stop directing traffic to a cluster member that stops responding. This check is very summary and simply verifies that the corresponding network port responds. Therefore, it is possible that a load balancer redirects traffic to a cluster member that is not capable of processing that traffic appropriately.

Some examples are that PolicyCenter is:

  • Not fully started yet
  • At the MAINTENANCE run level
  • Experiencing significant issues, such as an out-of-memory condition

Some other infrastructure constraints exist. For example, some environments cannot use source IP stickiness to load-balance conversational SOAP calls. In this situation, if using Guidewire ContactManager, you can instantiate one ContactManager instance on each server machine hosting one or more PolicyCenter instances. You then configure each PolicyCenter instance on that machine to direct contact requests to that local ContactManager instance. In this scenario, if the local ContactManager instance is not functioning properly, it is advisable to stop directing traffic to any of the PolicyCenter instances on that server.

Guidewire applications include a simple HTTP ping utility that enables you to check the application status with a web browser. For instance, to check the status of an instance of PolicyCenter running on port 8080 of the local computer, you would enter the following URL into a web browser:
  • http://localhost:8080/pc/ping

There are three possible responses by the web browser:

  • If the application is running at the default MULTIUSER run level, the browser displays the number 2.
  • If the application is running in any mode other than MULTIUSER, the browser displays a specific ASCII character, depending on the circumstances.
  • If the PolicyCenter server is not running, the browser displays an HTTP failure message, depending on the configuration of the server.

See Getting and setting the run level for a list of the specific ASCII characters that the ping utility can return. Invoking this utility programmatically provides more granular information on the server’s status.

It is possible to configure the load balancers access this URL on a regular basis to determine the health of each member of the cluster. You can then use these results to create redirection logic.

For example, suppose that you have an environment in which PolicyCenter directs traffic to a local ContactManager instance. You then configure the load balancer to only redirect traffic to a PolicyCenter instance if both that instance and the ContactManager instance on that server are accessible for user requests.