The number of delivered messages kept in the sent messages buffer of each jGroups view member. Messages are kept in a sender cache even though they were reported as delivered by existing view members, because there may be some other member temporarily not in the view. The higher the number, the higher the chance of reliable messages delivery in an unreliable network environment. However the messages consume memory: approximately 4kB for each message.
Optional Cluster Properties
Optional General Properties
These properties are not vital for Cluster configuration - default values are sufficient.
Name | Type | Description | Default |
---|---|---|---|
cluster.group.name |
String |
Each Cluster has its unique group name. If you need 2 Clusters in the same network environment, each of them would have its own group name. |
cloverCluster |
cluster.jgroups.external_address |
String, IP address |
The IP address of the Cluster node. Configure this only if the Cluster nodes are on different sub-nets, so the IP address of the network interface isn’t directly accessible from the other Cluster nodes. |
|
cluster.jgroups.external_port |
int, port |
The port for asynchronous messaging. Configure this only if the Cluster nodes are on different sub-nets and the port opened on the IP address is different than the port opened on the node’s network interface IP address. |
|
cluster.jgroups.protocol.AUTH.value |
String |
The authentication string/password used for verification Cluster nodes accessing the group. It is a protection against fake messages. If this property is not specified, the Cluster should be protected by firewall settings. Must be the same on all Cluster nodes. |
|
cluster.jgroups.protocol.NAKACK.gc_lag |
int |
10000 |
|
cluster.jgroups.protocol.NAKACK.xmit_table_obsolete_member_timeout |
long |
How long (in milliseconds) we keep an obsolete member in the xmit-table. It is necessary for recognition of a member temporarily unaccessible and removed from the view. With previous NAKACK implementation, the member removed from the view was also automatically removed from xmit-table, so it appeared as a new member when it re-joined the view. With current modified implementation, the member is kept in the xmit-table for a configured interval longer, so when it re-joins the view, it is a known member and undelivered messages may be re-delivered to it. A member in the xmit-table isn’t consuming memory. |
3600000 |
cluster.jgroups.tcpping.initial_hosts |
String, in format: |
JGroups automatically handles initial host discovery, making this configuration optional. Users can still set it to enforce a specific configuration, but it’s not required for basic functionality. If you want to set the property, specify a list of IP addresses (with ports) where you expect running and listening nodes (other nodes "bind_address" and "start_port" properties). |
|
cluster.max_allowed_time_shift_between_nodes |
int |
A maximum allowed time shift between nodes. All nodes must have system time synchronized, otherwise the Cluster may not work properly. So if this threshold is exceeded, the node will be set as invalid. |
2000 |
cluster.node.check.checkMinInterval |
int |
Periodicity of Cluster node checks, in milliseconds, i.e. the time period after which the Server checks whether the Cluster node is running. |
20000 |
cluster.node.remove.interval |
int |
A time interval in milliseconds. If no node info comes in this interval, the node is considered as lost and it is removed from the Cluster. |
50000 |
cluster.node.sendinfo.history.interval |
int |
A time interval in milliseconds, for which each node stores a heart-beat in the memory. It is used for rendering figures in the web GUI-monitoring section. |
240000 |
int |
A time interval in milliseconds. Each node sends a heart-beat with information about itself to another nodes. This interval specifies how often the information is sent under common circumstances. |
2000 |
|
cluster.node.sendinfo.min_interval |
int |
A specified minimum interval (in milliseconds) between two heart-beats.
A heart-beat may be send more often than specified by |
500 |
cluster.shared_sandboxes_path |
String |
This property is deprecated.
This property still works but is used only when a shared sandbox doesn’t have its own path specified.
It is just for backward compatibility and it is not recommended for new deployments.
Since 3.5, we recommend to specify the sandbox path explicitly and use the |
|
cluster.sync.connection.connectTimeout |
int |
Specifies the connection timeout (in milliseconds) when performing remote procedure call (RPC) between Cluster nodes. |
7000 |
cluster.sync.connection.nodeInfo.connectTimeout |
int |
Checks the node connection availability. If the node doesn’t respond in the set number of milliseconds, it is suspended. Under heavy load, a node may fail to respond in time; in such a case, increasing the value may prevent the node from suspension. |
5000 |
cluster.sync.connection.nodeInfo.readTimeout |
int |
Checks the node read availability. If the node doesn’t respond in the set number of milliseconds, it is suspended. Under heavy load, a node may fail to respond in time; in such a case, increasing the value may prevent the node from suspension. |
5000 |
cluster.sync.connection.readTimeout |
int |
Specifies the read timeout (in milliseconds) when performing RPC between Cluster nodes.
Increasing the read timeout can help to suppress |
90000 |
sandboxes.home.local |
String |
Intended as a placeholder in the location path. So the sandbox path is specified with the placeholder and it is resolved to the real path just before it is used. For backward compatibility, the default value uses the clover.home configuration property. |
${clover.home}/sandboxes-local |
sandboxes.home.partitioned |
String |
Intended as a placeholder in the location path. So the sandbox path is specified with the placeholder and it is resolved to the real path just before it is used. For backward compatibility, the default value uses the clover.home configuration property. |
${clover.home}/sandboxes-partitioned |
Optional Remote Edge Properties
Below is a list of names and default values of properties used to configure remote edges in a Clustered environment.
Name | Description | Default |
---|---|---|
cluster.edge.chunkSize |
Specifies the size of a chunk created by the right side of a remote edge (in bytes). |
524288 |
cluster.edge.chunkWaitTimeout |
Specifies how long should the servlet wait for a next chunk to become available (in milliseconds). |
60000 |
cluster.edge.connectTimeout |
Specifies a socket connection timeout when fetching a chunk (in milliseconds). |
30000 |
cluster.edge.readTimeout |
Specifies a socket read timeout when fetching a chunk (in milliseconds). |
90000 |
cluster.edge.handshakeTimeout |
Specifies how long should the client wait until a remote edge is registered by a data producing job (in milliseconds). |
120000 |
cluster.edge.chunkReadRetries |
Specifies how many times should be a chunk fetch re-attempted before reporting an error to the consumer. |
2 |
cluster.edge.disableChunkProtocol |
Disables the chunked data transfer protocol, switching to the old implementation. |
false |
cluster.ssl.disableCertificateValidation |
Disables validation of certificates in HTTPS connections of remote edges. Disabling the validation affects jobs run on both Worker and Server Core. |
false |