Set up Guidewire cluster with Redis server

It is possible to configure a Redis server to work with Guidewire InsuranceSuite application clusters.

About this task

To run a Guidewire PolicyCenter cluster with a Redis server, you need to perform the following tasks:
  • Configure the Redis server with specific integration parameters.
  • Update the BroadcastTransportFactory plugin to support Redis.
  • Redeploy the PolicyCenter application server.
Important: Guidewire does not support the Redis Sentinel configuration. See the Product Support Matrix for supported configurations.

Procedure

  • Configure the Redis server
    1. Download Redis from the following location to your local file directory:
    2. Install the Redis distribution using the following commands. Enter the appropriate version numbers for your Redis distribution download.
      $ tar xzf redis-5.0.7.tar.gz
      $ cd redis-5.0.7
      $ make  
    3. Open file /etc/redis/redis.conf and set the following parameters:
      # Run Redis as backgroun process
      daemonize yes
      
      # Turn off protected mode
      protected-mode no
      
      # Set Redis port value
      port 6379
      
      # Specifiy the value (in milliseconds) above which Redis logs latency data
      latency-monitor-threshold 10
      
      # Set buffer size (for slow clients)
      client-output-buffer-limit pubsub 2000mb 1000mb 60
      
      # Define Redis logging parameters
      loglevel notice
      logfile "./redis.log"
    4. Use the following command to start the Redis server with the updated Redis configuration file:
      • src/redis-server ./redis.conf
  • Create the Guidewire Redis transport plugin
    1. In Guidewire Studio for PolicyCenter, navigate to the following location in the Studio Project window:
      • configuration > config > Plugins > registry
    2. Open plugin ClusterBroadcastTransportFactory for editing.
      1. Select the current OSGi entry in the plugin editor, remove its Service PID value, and enter the following text in its place:
        • com.guidewire.pl.cluster.internal.broadcast.redis.RedisBroadcastTransportFactory
      2. Add host URL and port parameters for each Redis server that you are deploying.
      3. Add a maxBatchWriteInterval parameter and set its value to 100 (one second).
      After you complete this work, you see an entry similar to the following for the updated OSGi implementation:
      <plugin-osgi servicepid="com.guidewire.pl.cluster.internal.broadcast.redis.RedisBroadcastTransportFactory">
        <param name="redisServer1" value="Redis server host name or IP"/>
        <param name="redisPort1" value="6379"/>
        <param name="redisServer2" value="Redis server host name or IP"/>
        <param name="redisPort2" value="6379"/>
        …
        <param name="maxBatchWriteInterval" value="100"/>
      </plugin-osgi>
  • Redeploy and restart the PolicyCenter application
    1. Recompile the changed resource using one of the following methods:
      • Select Build Project or Rebuild Project from the Studio Build menu.
      • Execute gwb compile from a server command prompt (after you redeploy to that server).
    2. Redeploy the PolicyCenter application to each server in the cluster.
    3. Stop and restart the application server to update the PolicyCenter application database.
      After restarting the application, you see an entry similar to the following in the PolicyCenter log:
      • 2020-2-17 09:42:44,744 INFO [main] Server.Cluster.RedisBroadcastTransport RedisPublisher(someHost.myCompany.com:6379) connected to Redis