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 42.2. Optional general properties

propertytypedescriptiondefault
cluster.jgroups.external_addressString, IP address An 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_portint, port A 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_lagint A 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_timeoutlong How long (in milliseconds) we keep obsolete member in the xmit-table. It is necessary for recognition of 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.valueString 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.partitionedString 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.localString 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_pathString 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.intervalint 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.cluster.node.sendinfo.min_intervalint A time interval in milliseconds. A specified minimum interval 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.intervalint 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.intervalint 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_nodesint The 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.nameString 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.valueString An 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.typeString 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.nodeIdsString A 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.  

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 42.3. Optional remote edge properties

propertydescriptiondefault
cluster.edge.chunkSizeSpecifies the size of a chunk created by the right side of a remote edge (in bytes).524288
cluster.edge.chunkWaitTimeoutSpecifies how long should the servlet wait for a next chunk to become available (in milliseconds).60000
cluster.edge.connectTimeoutSpecifies a socket connection timeout when fetching a chunk (in milliseconds).30000
cluster.edge.readTimeoutSpecifies a socket read timeout when fetching a chunk (in milliseconds).90000
cluster.edge.handshakeTimeoutSpecifies how long should the client wait until a remote edge is registered by a data producing job (in milliseconds).120000
cluster.edge.chunkReadRetriesSpecifies how many times should be a chunk fetch re-attempted before reporting an error to the consumer.2
cluster.edge.disableChunkProtocolDisables the chunked data transfer protocol, switching to the old implementation.false
cluster.ssl.disableCertificateValidationDisables validation of certificates in HTTPS connections of remote edges. Disabling the validation affects jobs run on both Worker and Server Core.false