Optional Properties

Optional properties - these properties aren't vital for cluster configuration - default values are sufficient
cluster.jgroups.external_address

IP address of the cluster node. Configure this only if the cluster nodes are on the different sub-nets, so IP address of the network interface isn't directly accessible from the other cluster nodes.

type: String, IP address

cluster.jgroups.external_port

Port for asynchronous messaging. Configure this only if the cluster nodes are on the different sub-nets, and port opened on the IP address is different then port opened on the node's network interface IP address.

type: int, port

cluster.jgroups.protocol.NAKACK.gc_lag

Number of delivered messages kept in the "sent messages buffer" of each jGroups view member. Messages are kept in 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 chance of reliable messages delivery in unreliable network environment. However the messages consume memory: aproximatelly 4kB for each message.

type: int

default: 10000

cluster.jgroups.protocol.NAKACK.xmit_table_obsolete_member_timeout

How long we keep obsolete member in the xmit-table. Time in millis. It's neccessary to 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 new member when it re-joined the view. With current modified implementation the member is kept in the xmit-table for configured interval longer, so when it re-joins the view, it's known member and undelivered messages may be re-delivered to it. Member in the xmit-table isn't consuming memory.

type: long

default: 3600000

cluster.jgroups.protocol.AUTH.value

String used by jgroups member to authenticate to the group. Must be the same on all cluster nodes. Its protection against fake messages.

type: String

sandboxes.home.partitioned

This property is intended to be used as placeholder in the location path of partitioned sandboxes. So the sandbox path is specified with the placeholder and it's resolved to the real path just before it's used. The default value uses configuration property "user.data.home" which points to the home directory of the user which runs the JVM process. Directory depends on the OS. On unix-like systems it's typically /home/[username]

type: String

default: ${user.data.home}/CloverETL/sandboxes-partitioned

sandboxes.home.local

This property is intended to be used as placeholder in the location path of local sandboxes. So the sandbox path is specified with the placeholder and it's resolved to the real path just before it's used. The default value uses "user.data.home" configuration property which points to the home directory of the user which runs the JVM process. The directory location depends on the OS. On Unix-like systems it's typically /home/[username]

type: String

default: ${user.data.home}/CloverETL/sandboxes-local

cluster.shared_sandboxes_path

This property is deprecated. This property still works but it's used only when shared sandbox doesn't have it's own path specified. It's just for backward compatibility and it's not recommended for new deployments. Since 3.5 it's recommended to specify sandbox path explicitly and use "sandboxes.home" property/placeholder.

type: String

cluster.node.sendinfo.interval

time interval in ms; each node sends heart-beat with info about itself to another nodes; this interval specifies how often the info is sent under common circumstances

type: int

default: 2000

cluster.node.sendinfo.cluster.node.sendinfo.min_interval

time interval in ms; Specified minimum interval between two heart-beats. Heart-beat may be send more often then specified by cluster.node.sendinfo.interval, e.g. when jobs start or finish. However the interval will never be shorter then this minimum.

type: int

default: 500

cluster.node.sendinfo.history.interval

time interval in ms, for which each node stores heart-beat in the memory; It's used for rendering figures in the web GUI-monitoring section

type: int

default: 240000 (4 minutes)

cluster.node.remove.interval

time interval in ms; if no node info comes in this interval, the node is considered as lost and it is removed from the cluster

type: int

default: 50000

cluster.max_allowed_time_shift_between_nodes

Max allowed time shift between nodes. All nodes must have system time synchronized. Otherwise cluster may not work properly. So if this threshold is exceeded, node will be set as invalid.

type: int

default: 2000

cluster.group.name

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.

type: String

defult: cloverCluster

cluster.jgroups.protocol.AUTH.value

Authentication string/password used for verification cluster nodes accessing the group. If this property is not specified, Cluster should be protected by firewall settings.

type: String

cluster.datasource.type

Change this property to "remote" if the node doesn't have direct connection to the CloverETL Server database, so it has to use some other cluster node as proxy to handle persistent operations. In such case, also property "cluster.datasource.delegate.nodeIds" must be properly configured. Properties jdbc.* will be ignored. Please note, that scheduler is active only on nodes with direct connection.

type: String

default: local

cluster.datasource.delegate.nodeIds

List of cluster node IDs (separated by 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 CloverETL 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.

type: String