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
|
| 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:
GZIPNO_COMPRESSION
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, withAppCodebeing 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).
