JCR clustering configuration to JCR 1.10.4, 1.11.2
Instructions for JCR 1.11.2 and 1.10.4
In fact, this configuration also work since 1.10.4.
<component> <type>org.exoplatform.services.jcr.ext.replication.ReplicationService</type> <init-params> <values-param> <name>repositories</name> <value>repository</value> </values-param> <properties-param> <name>replication-properties</name> <property name="enabled" value="true"/> <property name="mode" value="persistent"/> <!-- {persistent, proxy} --> <property name="bind-ip-address" value="192.168.0.15"/> <property name="channel-config" value="TCP(oob_thread_pool.queue_max_size=100;thread_naming_pattern=cl;use_concurrent_stack=true;oob_thread_pool.rejection_policy=Run;discard_incompatible_packets=true;thread_pool.max_threads=40;oob_thread_pool.enabled=false;oob_thread_pool.max_threads=20;loopback=false;oob_thread_pool.keep_alive_time=5000;thread_pool.queue_enabled=false;oob_thread_pool.queue_enabled=false;max_bundle_size=64000;thread_pool.queue_max_size=100;thread_pool.enabled=false;enable_diagnostics=true;max_bundle_timeout=30;oob_thread_pool.min_threads=8;use_incoming_packet_handler=true;thread_pool.rejection_policy=Run;bind_addr=$bind-ip-address;thread_pool.min_threads=8;thread_pool.keep_alive_time=5000;enable_bundling=true):MPING(timeout=2000;num_initial_members=8;mcast_port=34526;mcast_addr=224.0.0.1):FD(timeout=2000;max_tries=5;shun=true):FD_SOCK:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK(max_xmit_size=60000;print_stability_history_on_failed_xmit=true;use_mcast_xmit=false;gc_lag=0;discard_delivered_msgs=true;retransmit_timeout=300,600,1200,2400,4800):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=8000000):pbcast.GMS(print_local_addr=true;join_timeout=3000;view_bundling=true;join_retry_timeout=2000;shun=true;merge_leader=true;reject_join_from_existing_member=true)"/> <property name="recovery-dir" value="../temp/replication/recovery"/> <property name="node-name" value="cluster_node2"/> <property name="other-participants" value="cluster_node1;cluster_node3"/> <property name="wait-confirmation" value="2000"/> </properties-param> <properties-param> <name>replication-priority-properties</name> <property name="priority-type" value ="dynamic"/> <!-- {static, dynamic} --> <property name="node-priority" value="100"/> <!-- max == 100 --> </properties-param> </init-params> </component>
| Parameter | Description | Value |
|---|---|---|
| enabled | enable/disable replication | true or false |
| mode | type of replication | persistent or proxy |
| bind-ip-address | IP address of the local network interface to use for replication | IP address |
| channel-config | JGroups configuration | See the JGroups Docs |
| recovery-dir | a path to the directory for recovery information | path |
| node-name | the name of this node | string |
| other-participants | list of names of other cluster participants | comma separated list of cluster names |
| wait-conformation | time to wait for acknowledgement on successful preservation ChangesLog, set in milliseconds | x ms |
| priority-type | type of priority | {static or dynamic} |
| node-priority | the priority value | {0..100}, max = 100 |
Instruction for JCR 1.11.2 (1.10.4) to proxy replication
The priorities mechanism was changed in 1.11.2 (and 1.10.4) to proxy replication. The JCR 1.11.2 (1.10.4) allows use same configuration to all participants in proxy replication.<component>
<type>org.exoplatform.services.jcr.ext.replication.ReplicationService</type>
<init-params>
<value-param>
<name>force-xml-configuration</name>
<value>true</value>
</value-param>
<values-param>
<name>repositories</name>
<value>repository</value>
</values-param>
<properties-param>
<name>replication-properties</name>
<property name="enabled" value="true"/>
<property name="mode" value="proxy"/>
<property name="bind-ip-address" value="${exo.bind.ip.address}"/>
<property name="channel-config"
value="TCP(start_port=7700;oob_thread_pool.queue_max_size=100;thread_naming_pattern=cl;use_concurrent_stack=true;oob_thread_pool.rejection_policy=Run;discard_incompatible_packets=true;thread_pool.max_threads=40;oob_thread_pool.enabled=false;oob_thread_pool.max_threads=20;loopback=false;oob_thread_pool.keep_alive_time=5000;thread_pool.queue_enabled=false;oob_thread_pool.queue_enabled=false;max_bundle_size=64000;thread_pool.queue_max_size=100;thread_pool.enabled=false;enable_diagnostics=true;max_bundle_timeout=30;oob_thread_pool.min_threads=8;use_incoming_packet_handler=true;thread_pool.rejection_policy=Run;bind_addr=$bind-ip-address;thread_pool.min_threads=8;thread_pool.keep_alive_time=5000;enable_bundling=true):TCPPING(initial_hosts=192.168.0.245[7700],192.168.0.246[7700];port_range=5;timeout=3000;num_initial_members=2):FD(timeout=2000;max_tries=5;shun=true):FD_SOCK:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK(max_xmit_size=60000;print_stability_history_on_failed_xmit=true;use_mcast_xmit=false;gc_lag=0;discard_delivered_msgs=true;retransmit_timeout=300,600,1200,2400,4800):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=8000000):pbcast.GMS(print_local_addr=true;join_timeout=3000;view_bundling=true;join_retry_timeout=2000;shun=true;merge_leader=true;reject_join_from_existing_member=true)"/>
<property name="channel-name" value="OnlineRepCh_DMS_2"/>
<property name="recovery-dir" value="../temp/replication/recovery"/>
<property name="wait-confirmation" value="2000"/>
</properties-param>
</init-params>
</component>TCPPING(initial_hosts=192.168.0.245[7700],192.168.0.246[7700];port_range=5;timeout=3000;num_initial_members=2)