Interface ClusterBroadcastTransportFactory

In the base configuration, Guidewire provides the following OSGi implementations classes for plugins that implement the ClusterBroadcastTransportFactory interface.
DefaultDatabaseBroadcastTransport OSGi implementation class that uses the application database for broadcasting messages. The broadcast mechanism works by writing messages to a database table with the plugin periodically loading recently added message rows to this table.

PolicyCenter uses this mechanism for default message broadcast if you do not enable the ClusterFastBroadcastTransportFactory plugin implementation.

RedisBroadcastTransportFactory OSGi implementation class that uses Redis in broadcasting messages within a Guidewire cluster. This is an optional plugin implementation that you must configure (and then enable) to use.

The two plugin implementations share multiple parameters, and additionally, each implementation provides its own parameters for configuring the plugin. Use the configuration parameters to provide precise control over the behavior of plugins that implement the ClusterBroadcastTransportFactory interface.

Common parameters

batchWriteAttempts
Maximum number of attempts to write to a batch queue. If the number of consecutive errors exceeds this threshold, the transport switches to ERROR mode in which each new messages pops the oldest message out of the in-memory queue. The purpose of this parameter value is to avoid out-of-memory issues. The default is 10.
batchWriteInterval
Maximum time interval to wait (in milliseconds) before PolicyCenter writes, or sends, the current batch of messages. This parameter has the following default:
  • DefaultDatabaseBroadcastTransportFactory - 2000 (2 seconds)
  • RedisBroadcastTransportFactory - 1000 (1 second)
maxBatchWriteInterval
Maximum amount (in milliseconds) to which the retry interval can grow in making multiple attempts to resend a failed message batch. If the broadcast transport generates an error while trying to send the current batch of messages, the plugin attempts to send the message batch with an exponential backoff. The exponential backoff doubles the delay after each consecutive error up to the stipulated value, which is the maximum retry interval. This parameter has the following default:
  • DefaultDatabaseBroadcastTransportFactory - 16000 (16 seconds)
  • RedisBroadcastTransportFactory - 8000 (8 seconds)
maxOutboundBufferSize
Maximum size of outbound buffer (in megabytes). The purpose of this parameter value is to prevent out-of-memory issues if a transport is having problems writing or sending messages. The default is 25 megabytes.
preferredBatchDataSize
Maximum size of the batch (in bytes). If the size of the current batch (the sum of all of the message batch sizes) reaches this threshold, PolicyCenter writes, or sends, the current batch of messages immediately. This value must be less than or equal to the largest possible integer value supported by your hardware.
preferrredBatchMessageCnt
Maximum number of pending messages allowed in the batch queue. If the number of messages in the batch queue reaches this threshold, PolicyCenter writes, or sends, the current batch of messages immediately. The value must be less than or equal to the largest possible integer value supported by your hardware.
receiverPoolSize
Number of threads in the thread pool that handle inbound messages. The default is 4.

DefaultDatabaseBroadcastTransport parameters

batchesDeleteInterval
Average time (in milliseconds) between the execution of a SQL statement that deletes old message batches from the database. Each server node in the cluster executes this SQL statement. Therefore, if the cluster installation contains many nodes, Guidewire recommends that you increase this value. The default is 60000 milliseconds (1 minute).
batchKeepPeriod
Maximum amount of time for PolicyCenter to retain a batch in the database before deleting it. The default is 600000 (10 minutes).
batchReadInterval
Maximum time interval (in milliseconds) between reading and receiving new batches. The default is 3000 milliseconds (3 seconds).
compressionType
Specifies an algorithm that the transport uses to compress batches of messages. Possible values are:
  • GZIP
  • NO_COMPRESSION
The default is GZIP.

RedisBroadcastTransportFactory parameters

The only required Redis plugin parameter is redisServer.

channel
Name of the Redis channel to which the transport is to publish messages. The default is GW_AppCode, with AppCode being the (capitalized) two-letter acronym for the Guidewire InsuranceSuite application running in the cluster.
maxTimeDiffBetweenServers
If the cluster contains multiple Redis servers, and there is a gap in the message stream from one server, the transport waits for other servers to fill the gap. However, if the other servers are too slow and the time difference between the newest messages (each message has timestamp inside) from the servers is greater than this value, the transport stops waiting for missing messages and moves forward. The default is 30000 (30 seconds).
redisPassword
Password of the Redis server. The default value is no password. If you have several Redis servers, create a sequence of Redis password names. For example, create the following sequence: redisPassword1, redisPassword2, …, redisPasswordN.
redisPort
Optional port of the Redis server. The default port value is 6379. If you have several Redis servers, create a sequence of Redis port names. For example, create the following sequence: redisPort1, redisPort2, …, redisPortN.
redisServer
IP address or host name of Redis server. If you have several Redis servers use, create a sequence of Redis server names. For example, create the following sequence: redisServer1, redisServer2, …, redisServerN. You must supply a value for this parameter.
socketTimeout
TCP socket timeout (in milliseconds) to use while establishing connection to Redis. The default is 60000 (1 minute).