JCR clustering configuration to JCR 1.6 - 1.7.1
The replication has been in eXo JCR since 1.6.
The replication feature can be enabled at repository level in the repository configuration :
The parameters are :
A sample configuration of JGroups for 8 participants of the cluster:
this configuration works on eXo JCR versions 1.6, 1.7 and 1.7.1
<repository name="repository" system-workspace="production" default-workspace="production"> <security-domain>exo-domain</security-domain> <access-control>optional</access-control> <replication enabled="true" mode="persistent" bind-ip-address="192.168.0.15" channel-config="TCP_NIO(use_send_queues=false; ........."> </replication>
| Parameter | Description | values |
|---|---|---|
| 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 |
<!-- config replication for IPv6 --> <replication enabled="true" mode="persistent" bind-ip-address="fe80::215:f2ff:febe:3343%4" channel-config="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=true;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=true;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=/LocalAddress/;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=ff18:eb72:479f::2:3):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=false):FC(max_credits=4000000;min_threshold=0.2;max_block_time=10000)"> </replication> <!-- config replication for IPv4 --> <replication enabled="true" mode="persistent" bind-ip-address="192.168.0.15" channel-config="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=true;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=true;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=/LocalAddress/;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=229.1.2.3):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=false):FC(max_credits=4000000;min_threshold=0.2;max_block_time=10000)"> </replication>