Optional Cluster Properties
Optional General Properties |
Optional Remote Edge Properties |
Optional General Properties
These properties are not vital for Cluster configuration - default values are sufficient.
Table 50.2. Optional general properties
Name | Type | Description | Default |
---|---|---|---|
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.NAKACK.gc_lag | int | 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. | 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.protocol.AUTH.value | String | String used by a jgroups member to authenticate to the group. Must be the same on all Cluster nodes. It is a protection against fake messages. | |
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 |
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 |
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 sandboxes.home property/placeholder.
| |
cluster.node.sendinfo.interval | 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 cluster.node.sendinfo.interval ,
e.g. when jobs start or finish.
However the interval will never be shorter then this minimum.
| 500 |
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 |
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.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.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.protocol.AUTH.value | String | The authentication string/password used for verification Cluster nodes accessing the group. If this property is not specified, the Cluster should be protected by firewall settings. | |
cluster.datasource.type | String |
Change this property to remote
if the node doesn't have a direct connection to the CloverDX Server database,
so it has to use some other Cluster node as proxy to handle persistent operations.
In such a case, the cluster.datasource.delegate.nodeIds property must be properly configured, as well.
Properties jdbc.* will be ignored.
Note that scheduler is active only on nodes with a direct connection.
| local |
cluster.datasource.delegate.nodeIds | String |
The list of Cluster node IDs (separated by a comma) which this node may use as a proxy to handle persistent operations.
At least one of the listed node IDs must be running, otherwise this node will fail.
All listed node IDs must have a direct connection to CloverDX Server database properly configured.
Property cluster.datasource.delegate.nodeIds is ignored by default.
Property cluster.datasource.type must be set to remote to enable the feature.
| |
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.sync.connection.connectTimeout | int | Specifies the connection timeout (in milliseconds) when performing remote procedure call (RPC) between Cluster nodes. | 7000 |
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 SocketReadTimeout errors
in communication with a Cluster node under heavy load.
| 30000 |
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 |
Optional Remote Edge Properties
Below is a list of names and default values of properties used to configure remote edges in a Clustered environment.
Table 50.3. Optional remote edge properties
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 |