The replication has been in eXo JCR since 1.6. The replication feature can be enabled at repository level in the repository configuration :

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>

The parameters are :

ParameterDescriptionvalues
enabledenable/disable replicationtrue or false
modetype of replicationpersistent or proxy
bind-ip-addressIP address of the local network interface to use for replicationIP address
channel-configJGroups configurationSee the JGroups Docs

A sample configuration of JGroups for 8 participants of the cluster:

<!-- 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>

Creator: Alex Reshetnyak on 07/28/2009
Copyright (c) 2000-2009. Allright reserved - eXo platform SAS
1.6.13286