Author: nfilotto
Date: 2010-09-08 05:53:15 -0400 (Wed, 08 Sep 2010)
New Revision: 3090
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-data.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/udp-mux.xml
Log:
EXOJCR-942: Allow to manage the shared transport and configure it by default
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java 2010-09-08
07:40:32 UTC (rev 3089)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java 2010-09-08
09:53:15 UTC (rev 3090)
@@ -38,6 +38,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.HashMap;
@@ -70,7 +71,8 @@
public static final String JGROUPS_MUX_ENABLED =
"jgroups-multiplexer-stack";
/**
- * Keep only one reference of the {@link JChannelFactory}
+ * Keep only one instance of the {@link JChannelFactory} to prevent creating several
times the
+ * same multiplexer stack
*/
private static final JChannelFactory CHANNEL_FACTORY = new JChannelFactory();
@@ -78,8 +80,8 @@
* A Map that contains all the registered JBC instances, ordered by
* {@link ExoContainer} instances, {@link CacheType} and JBC Configuration.
*/
- private static Map<ExoContainer, Map<CacheType, Map<Configuration,
Cache>>> CACHES =
- new HashMap<ExoContainer, Map<CacheType, Map<Configuration,
Cache>>>();
+ private static Map<ExoContainer, Map<CacheType, Map<ConfigurationKey,
Cache>>> CACHES =
+ new HashMap<ExoContainer, Map<CacheType, Map<ConfigurationKey,
Cache>>>();
private final TemplateConfigurationHelper configurationHelper;
@@ -245,36 +247,38 @@
Cache<K, V> cache) throws RepositoryConfigurationException
{
ExoContainer container = ExoContainerContext.getCurrentContainer();
- Map<CacheType, Map<Configuration, Cache>> allCacheTypes =
CACHES.get(container);
+ Map<CacheType, Map<ConfigurationKey, Cache>> allCacheTypes =
CACHES.get(container);
if (allCacheTypes == null)
{
- allCacheTypes = new HashMap<CacheType, Map<Configuration,
Cache>>();
+ allCacheTypes = new HashMap<CacheType, Map<ConfigurationKey,
Cache>>();
CACHES.put(container, allCacheTypes);
}
- Map<Configuration, Cache> caches = allCacheTypes.get(cacheType);
+ Map<ConfigurationKey, Cache> caches = allCacheTypes.get(cacheType);
if (caches == null)
{
- caches = new HashMap<Configuration, Cache>();
+ caches = new HashMap<ConfigurationKey, Cache>();
allCacheTypes.put(cacheType, caches);
}
- Configuration cfg;
+ Configuration cfg = cache.getConfiguration();
+ ConfigurationKey key;
try
{
- cfg = cache.getConfiguration().clone();
- // Ignore the eviction config, since each cache will have his own region
- cfg.setEvictionConfig(null);
+ key = new ConfigurationKey(cfg);
}
catch (CloneNotSupportedException e)
{
throw new RepositoryConfigurationException("Cannot clone the
configuration.", e);
}
- if (caches.containsKey(cfg))
+ if (caches.containsKey(key))
{
- cache = caches.get(cfg);
+ cache = caches.get(key);
}
else
{
- caches.put(cfg, cache);
+ caches.put(key, cache);
+ if (log.isInfoEnabled())
+ log.info("A new JBoss Cache instance has been registered fot the region
" + rootFqn + ", a cache of type " + cacheType
+ + " and the container " + container.getContext().getName());
}
addEvictionRegion(rootFqn, cache, cfg);
if (log.isInfoEnabled())
@@ -290,4 +294,64 @@
{
JCR_CACHE, INDEX_CACHE, LOCK_CACHE
}
+
+ /**
+ * This class is used to make {@link Configuration} being usable as a Key in an
HashMap since
+ * some variables such as <code>jgroupsConfigFile</code> are not managed
as expected in the
+ * methods equals and hashCode. Moreover two cache with same config except the
EvictionConfig
+ * are considered as identical
+ */
+ private static class ConfigurationKey
+ {
+ private final URL jgroupsConfigFile;
+ private final Configuration conf;
+
+ public ConfigurationKey(Configuration initialConf) throws
CloneNotSupportedException
+ {
+ // Clone it first since it will be modified
+ this.conf = initialConf.clone();
+ this.jgroupsConfigFile = conf.getJGroupsConfigFile();
+ // remove the jgroupsConfigFile from the conf
+ conf.setJgroupsConfigFile(null);
+ // remove the EvictionConfig to ignore it
+ conf.setEvictionConfig(null);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((conf == null) ? 0 : conf.hashCode());
+ result = prime * result + ((jgroupsConfigFile == null) ? 0 :
jgroupsConfigFile.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ConfigurationKey other = (ConfigurationKey)obj;
+ if (conf == null)
+ {
+ if (other.conf != null)
+ return false;
+ }
+ else if (!conf.equals(other.conf))
+ return false;
+ if (jgroupsConfigFile == null)
+ {
+ if (other.jgroupsConfigFile != null)
+ return false;
+ }
+ else if (!jgroupsConfigFile.equals(other.jgroupsConfigFile))
+ return false;
+ return true;
+ }
+ }
}
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-data.xml
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-data.xml 2010-09-08
07:40:32 UTC (rev 3089)
+++
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-data.xml 2010-09-08
09:53:15 UTC (rev 3090)
@@ -6,7 +6,6 @@
<clustering mode="replication"
clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false"
/>
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml 2010-09-08
07:40:32 UTC (rev 3089)
+++
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml 2010-09-08
09:53:15 UTC (rev 3090)
@@ -8,7 +8,6 @@
<clustering mode="replication"
clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false"
/>
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
<!-- Eviction configuration -->
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml 2010-09-08
07:40:32 UTC (rev 3089)
+++
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml 2010-09-08
09:53:15 UTC (rev 3090)
@@ -6,7 +6,6 @@
<clustering mode="replication"
clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false"
/>
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml 2010-09-08
07:40:32 UTC (rev 3089)
+++
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml 2010-09-08
09:53:15 UTC (rev 3090)
@@ -50,7 +50,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -61,7 +61,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
</properties>
@@ -71,7 +71,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
@@ -111,7 +111,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -122,7 +122,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
@@ -142,7 +142,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
@@ -182,7 +182,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -193,7 +193,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
@@ -213,7 +213,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
@@ -267,7 +267,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -278,7 +278,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
@@ -298,7 +298,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
@@ -357,7 +357,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -368,7 +368,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
@@ -388,7 +388,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
@@ -435,7 +435,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -446,7 +446,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
@@ -464,7 +464,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
@@ -511,7 +511,7 @@
<properties>
<property name="jbosscache-configuration"
value="test-jbosscache-data.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-data" />
</properties>
</cache>
@@ -522,7 +522,7 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
/>
<property name="jbosscache-configuration"
value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60"
/>
<property name="synonymprovider-class"
@@ -543,7 +543,7 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration"
value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration"
value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack"
value="true" />
+ <property name="jgroups-multiplexer-stack"
value="false" />
<property name="jbosscache-cluster-name"
value="JCR-cluster-locks" />
<property name="jbosscache-cl-cache.jdbc.table.name"
value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create"
value="true" />
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/udp-mux.xml
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/udp-mux.xml 2010-09-08
07:40:32 UTC (rev 3089)
+++
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/udp-mux.xml 2010-09-08
09:53:15 UTC (rev 3090)
@@ -1,33 +1,65 @@
-<protocol_stacks>
- <stack name="jcr.stack">
- <config>
- <UDP mcast_addr="228.10.10.10" mcast_port="45588"
tos="8" ucast_recv_buf_size="20000000"
- ucast_send_buf_size="640000"
mcast_recv_buf_size="25000000" mcast_send_buf_size="640000"
loopback="false"
- discard_incompatible_packets="true"
max_bundle_size="64000" max_bundle_timeout="30"
- use_incoming_packet_handler="true" ip_ttl="2"
enable_bundling="true" enable_diagnostics="true"
- thread_naming_pattern="cl" use_concurrent_stack="true"
thread_pool.enabled="true" thread_pool.min_threads="2"
- thread_pool.max_threads="8"
thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="true"
- thread_pool.queue_max_size="1000"
thread_pool.rejection_policy="discard" oob_thread_pool.enabled="true"
- oob_thread_pool.min_threads="1"
oob_thread_pool.max_threads="8"
oob_thread_pool.keep_alive_time="5000"
- oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="Run" />
+<config>
+ <UDP
+ singleton_name="JCR-cluster"
+ mcast_addr="${jgroups.udp.mcast_addr:228.10.10.10}"
+ mcast_port="${jgroups.udp.mcast_port:45588}"
+ tos="8"
+ ucast_recv_buf_size="20000000"
+ ucast_send_buf_size="640000"
+ mcast_recv_buf_size="25000000"
+ mcast_send_buf_size="640000"
+ loopback="false"
+ discard_incompatible_packets="true"
+ max_bundle_size="64000"
+ max_bundle_timeout="30"
+ use_incoming_packet_handler="true"
+ ip_ttl="${jgroups.udp.ip_ttl:2}"
+ enable_bundling="true"
+ enable_diagnostics="true"
+ thread_naming_pattern="cl"
- <PING timeout="2000" num_initial_members="3" />
- <MERGE2 max_interval="30000" min_interval="10000" />
- <FD_SOCK />
- <FD timeout="10000" max_tries="5" shun="true"
/>
- <VERIFY_SUSPECT timeout="1500" />
- <BARRIER />
- <pbcast.NAKACK use_stats_for_retransmission="false"
exponential_backoff="150" use_mcast_xmit="true"
- gc_lag="0" retransmit_timeout="50,300,600,1200"
discard_delivered_msgs="true" />
- <UNICAST timeout="300,600,1200" />
- <pbcast.STABLE stability_delay="1000"
desired_avg_gossip="50000" max_bytes="1000000" />
- <VIEW_SYNC avg_send_interval="60000" />
- <pbcast.GMS print_local_addr="true" join_timeout="3000"
shun="false" view_bundling="true" />
- <FC max_credits="500000" min_threshold="0.20" />
- <FRAG2 frag_size="60000" />
- <!--pbcast.STREAMING_STATE_TRANSFER /-->
- <pbcast.STATE_TRANSFER />
- <!-- pbcast.FLUSH /-->
- </config>
- </stack>
-</protocol_stacks>
+ use_concurrent_stack="true"
+
+ thread_pool.enabled="true"
+ thread_pool.min_threads="2"
+ thread_pool.max_threads="8"
+ thread_pool.keep_alive_time="5000"
+ thread_pool.queue_enabled="true"
+ thread_pool.queue_max_size="1000"
+ thread_pool.rejection_policy="discard"
+
+ oob_thread_pool.enabled="true"
+ oob_thread_pool.min_threads="1"
+ oob_thread_pool.max_threads="8"
+ oob_thread_pool.keep_alive_time="5000"
+ oob_thread_pool.queue_enabled="false"
+ oob_thread_pool.queue_max_size="100"
+ oob_thread_pool.rejection_policy="Run" />
+
+ <PING timeout="2000"
+ num_initial_members="3"/>
+ <MERGE2 max_interval="30000"
+ min_interval="10000"/>
+ <FD_SOCK />
+ <FD timeout="10000" max_tries="5" shun="true" />
+ <VERIFY_SUSPECT timeout="1500" />
+ <BARRIER />
+ <pbcast.NAKACK use_stats_for_retransmission="false"
+ exponential_backoff="150"
+ use_mcast_xmit="true" gc_lag="0"
+ retransmit_timeout="50,300,600,1200"
+ discard_delivered_msgs="true"/>
+ <UNICAST timeout="300,600,1200" />
+ <pbcast.STABLE stability_delay="1000"
desired_avg_gossip="50000"
+ max_bytes="1000000"/>
+ <VIEW_SYNC avg_send_interval="60000" />
+ <pbcast.GMS print_local_addr="true" join_timeout="3000"
+ shun="false"
+ view_bundling="true"/>
+ <FC max_credits="500000"
+ min_threshold="0.20"/>
+ <FRAG2 frag_size="60000" />
+ <!--pbcast.STREAMING_STATE_TRANSFER /-->
+ <pbcast.STATE_TRANSFER />
+ <!-- pbcast.FLUSH /-->
+</config>