Version

    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

    NameTypeDescriptionDefault
    cluster.jgroups.external_addressString, 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_portint, 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_lagint 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_timeoutlong 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.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.min_intervalint 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.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 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.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 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.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 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.checkMinIntervalint 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.connectTimeoutint Specifies the connection timeout (in milliseconds) when performing remote procedure call (RPC) between Cluster nodes. 7000
    cluster.sync.connection.readTimeoutint 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.connectTimeoutint 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.readTimeoutint 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

    NameDescriptionDefault
    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