[jboss-cvs] JBossAS SVN: r106143 - in branches/Branch_No_Multicast: cluster and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 17 18:51:01 EDT 2010


Author: pferraro
Date: 2010-06-17 18:51:00 -0400 (Thu, 17 Jun 2010)
New Revision: 106143

Added:
   branches/Branch_No_Multicast/cluster/src/installers/
   branches/Branch_No_Multicast/cluster/src/installers/ec2/
   branches/Branch_No_Multicast/cluster/src/installers/ec2/build.xml
   branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/
   branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/
   branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-configs.xml
   branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml
   branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jgroups/
   branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jgroups/jgroups-channelfactory-stacks.xml
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/build.xml
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/jboss-beans.xml
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/server.xml
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/mod_cluster/
   branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/mod_cluster/mod-cluster-jboss-beans.xml
Removed:
   branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-configs-ec.xml
   branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans-ec.xml
   branches/Branch_No_Multicast/cluster/src/resources/jgroups/jgroups-channelfactory-stacks-ec.xml
Modified:
   branches/Branch_No_Multicast/build/build-distr.xml
   branches/Branch_No_Multicast/build/build.xml
   branches/Branch_No_Multicast/cluster/build.xml
Log:
Convert building of cluster-ec2 profile into 2 installers: extras/ec2 and extras/mod_cluster-ec2

Modified: branches/Branch_No_Multicast/build/build-distr.xml
===================================================================
--- branches/Branch_No_Multicast/build/build-distr.xml	2010-06-17 22:42:51 UTC (rev 106142)
+++ branches/Branch_No_Multicast/build/build-distr.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -1090,6 +1090,20 @@
     </fileset>
     </copy>
 
+  	<!-- Create the ec2 and mod_cluster-ec2 installers -->
+    <mkdir dir="${install.root}/extras"/>
+    <copy todir="${install.root}/extras">
+      <fileset dir="${_module.output}/installers">
+        <include name="**"/>
+      </fileset>
+    </copy>
+    <!-- Copy configs from ec2 installer to mod_cluster-ec2 installer -->
+    <copy todir="${install.root}/extras/mod_cluster-ec2/resources">
+      <fileset dir="${_module.output}/installers/ec2/resources">
+        <include name="**"/>
+      </fileset>
+    </copy>
+  	 
   </target>
 
   <target name="_module-cluster-all" depends="_module-cluster-most">

Modified: branches/Branch_No_Multicast/build/build.xml
===================================================================
--- branches/Branch_No_Multicast/build/build.xml	2010-06-17 22:42:51 UTC (rev 106142)
+++ branches/Branch_No_Multicast/build/build.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -322,13 +322,6 @@
     <property name="install.standard.deployers" value="${install.standard}/deployers"/>
     <property name="install.standard.conf" value="${install.standard}/conf"/>
 
-    <property name="install.ec2" value="${install.server}/cluster-ec2"/>
-    <property name="install.ec2.lib" value="${install.ec2}/lib"/>
-    <property name="install.ec2.deploy" value="${install.ec2}/deploy"/>
-    <property name="install.ec2.deployers" value="${install.ec2}/deployers"/>
-    <property name="install.ec2.conf" value="${install.ec2}/conf"/>
-    <property name="install.ec2.deploy.hasingleton" value="${install.ec2}/deploy-hasingleton"/>
-    
     <!-- libs shared by the server configurations -->
     <property name="install.common" value="${install.root}/common"/>
     <property name="install.common.lib" value="${install.common}/lib"/>
@@ -773,10 +766,6 @@
     <antcall target="apply_auth_patch"/>
     <antcall target="skipped_auth_patch"/>
     <antcall target="apply_patch"/>
-  	 <!-- Build cluster-ec2 last so it gets the benefit of the above patches
-  	      TODO: maybe not ideal; better to build it and extend the patches to
-  	      cover it? -->
-    <antcall target="partition-ec2"/>
   </target>
 
   <target name="apply_auth_patch" unless="build.unsecure">
@@ -883,29 +872,6 @@
 
   </target>
 
-  <target name="partition-ec2" depends="init" unless="build.ewp">
-
-    <!-- Build ec2 based on production -->
-    <!-- Copy server/production to server/ec2 -->
-    <copy todir="${install.ec2}">
-      <fileset dir="${install.production}">
-      	<exclude name="deploy/cluster/jgroups-channelfactory.sar/META-INF/jgroups-channelfactory-stacks.xml"/>
-         <exclude name="deploy/cluster/jboss-cache-manager.sar/**"/>
-      </fileset>
-    </copy>
-  	
-  	 <!-- Add in the modified-for-ec2 content -->
-  	 <copy file="${project.root}/cluster/src/resources/jgroups/jgroups-channelfactory-stacks-ec.xml" 
-    	tofile="${install.ec2.deploy}/cluster/jgroups-channelfactory.sar/META-INF/jgroups-channelfactory-stacks.xml"/>   
-  	 
-  	 <mkdir dir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF"/>   
-  	 <copy file="${project.root}/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-configs-ec.xml" 
-    	tofile="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF/jboss-cache-configs.xml"/>  
-    <copy file="${project.root}/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans-ec.xml" 
-    	tofile="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans.xml"/>
-
-  </target>
-
   <!-- Partition the default single configuration build into a minimal,
   default and all configs with a minimal set of jars in the root lib dir.
   -->

Modified: branches/Branch_No_Multicast/cluster/build.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/build.xml	2010-06-17 22:42:51 UTC (rev 106142)
+++ branches/Branch_No_Multicast/cluster/build.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -119,6 +119,7 @@
     <!-- Where source files live -->
     <property name="source.java" value="${module.source}/main"/>
     <property name="source.etc" value="${module.source}/etc"/>
+    <property name="source.installers" value="${module.source}/installer"/>
     <property name="source.examples" value="${module.source}/examples"/>
     <property name="source.resources" value="${module.source}/resources"/>
 
@@ -128,6 +129,7 @@
     <property name="build.lib" value="${module.output}/lib"/>
     <property name="build.api" value="${module.output}/api"/>
     <property name="build.etc" value="${module.output}/etc"/>
+    <property name="build.installers" value="${module.output}/installer"/>
     <property name="build.examples" value="${module.output}/examples"/>
     <property name="build.reports" value="${module.output}/reports"/>
     <property name="build.resources" value="${module.output}/resources"/>
@@ -201,7 +203,8 @@
     description="Compile all source files."
     depends="compile-classes,
 compile-rmi,
-compile-etc"/>
+compile-etc,
+compile-installers"/>
 
   <!-- Compile all class files -->
   <target name="compile-classes" depends="init">
@@ -259,7 +262,17 @@
     </copy>
   </target>
 
+	  <!-- Compile manifests -->
+  <target name="compile-installers" depends="init">
+    <mkdir dir="${build.installers}"/>
+    <copy todir="${build.installers}">
+      <fileset dir="${source.installers}">
+        <include name="**"/>
+      </fileset>
+    </copy>
+  </target>
 
+
   <!-- ================================================================== -->
   <!-- Archives                                                           -->
   <!-- ================================================================== -->

Added: branches/Branch_No_Multicast/cluster/src/installers/ec2/build.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/ec2/build.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/ec2/build.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~ Red Hat licenses this file to you under the Apache License, version
+  ~ 2.0 (the "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~ implied.  See the License for the specific language governing
+  ~ permissions and limitations under the License.
+  -->
+<project default="install" name="EC2 Installer" basedir=".">
+
+	<property name="ec2.profile" value="cluster-ec2"/>
+   <property name="install.root" value="../../"/>
+
+   <property name="install.server" value="${install.root}/server"/>
+   <property name="install.production" value="${install.server}/production"/>
+   <property name="install.ec2" value="${install.server}/${ec2.profile}"/>
+   <property name="install.ec2.deploy" value="${install.ec2}/deploy"/>
+	
+   
+   <target name="install">
+
+      <!-- Build ec2 based on production -->
+      <!-- Copy server/production to server/ec2 -->
+      <copy todir="${install.ec2}">
+         <fileset dir="${install.production}">
+            <exclude name="deploy/cluster/jgroups-channelfactory.sar/META-INF/jgroups-channelfactory-stacks.xml"/>
+            <exclude name="deploy/cluster/jboss-cache-manager.sar/**"/>
+         </fileset>
+      </copy>
+     
+      <!-- Add in the modified-for-ec2 content -->
+      <copy file="${basedir}/resources/jgroups/jgroups-channelfactory-stacks.xml"
+         todir="${install.ec2.deploy}/cluster/jgroups-channelfactory.sar/META-INF/"/>
+      
+      <mkdir dir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF"/>
+      <copy file="${basedir}/resources/jboss-cache/jboss-cache-configs.xml" 
+        todir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF/"/>  
+      <copy file="${basedir}/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml" 
+        todir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF/"/>
+
+   </target>
+	
+</project>
\ No newline at end of file

Added: branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-configs.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-configs.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-configs.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry:cache-configs xmlns="urn:jboss:jbosscache-core:config:3.0" 
+                        xmlns:registry="urn:jboss:jbosscache-core:cache-repo:3.0">
+
+    <!-- 
+       JBoss Cache configurations using the standard JBC 3.x config format
+       can be added to this file, and will usable by the AS's CacheManager
+       if the "configResource" property in the jboss-cache-manager-jboss-beans.xml
+       file's "CacheConfigurationRegistry" bean is uncommented. (It is
+       commented out by default.)
+       However, use of the microcontainer config format used in this
+       sar's jboss-cache-manager-jboss-beans.xml file is recommended.
+    -->
+    
+    <!-- An example config; not intended for use; just to illustrate JBC 3's
+         config format and to comply with schema requirement for a cache-config
+         element. Removing this example is recommended if a real config is added.
+    --> 
+    <registry:cache-config name="example">
+
+       <locking isolationLevel="REPEATABLE_READ" lockAcquisitionTimeout="15000" nodeLockingScheme="pessimistic"/>
+       <serialization useRegionBasedMarshalling="true"/>
+       <startup regionsInactiveOnStartup="true"/>
+       <clustering clusterName="${jboss.partition.name:DefaultPartition}-example" mode="r">
+         <stateRetrieval fetchInMemoryState="true" timeout="60000"/>
+         <jgroupsConfig multiplexerStack="${jboss.default.jgroups.stack:tcp}"/>
+         <sync replTimeout="175000"/>
+       </clustering>
+       <eviction wakeUpInterval="5000">
+          <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm">
+             <property name="maxNodes" value="5000" />
+             <property name="timeToLive" value="1000" />
+          </default>
+       </eviction>
+    </registry:cache-config>
+    
+    
+</registry:cache-configs>


Property changes on: branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-configs.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Added: branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,1494 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- Factory/registry for JBoss Cache and PojoCache instances used in the AS -->
+   <bean name="CacheManager" class="org.jboss.ha.cachemanager.CacheManager">
+
+      <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.cache:service=CacheManager",                                          exposedInterface=org.jboss.ha.cachemanager.CacheManagerMBean.class, registerDirectly=true)</annotation>
+
+      <!-- This doesn't seem to work, so the service binds itself for now
+      <annotation>@org.jboss.aop.microcontainer.aspects.jndi.JndiBinding(name="java:CacheManager")</annotation>
+      -->
+      <property name="jndiName">java:CacheManager</property>
+      
+      <property name="configurationRegistry"><inject bean="CacheConfigurationRegistry"/></property>
+      <property name="channelFactory"><inject bean="JChannelFactory"/></property>
+      
+      <!-- Aliases for cache names. Allows caches to be shared across 
+           services that may expect different cache config names. -->
+      <property name="configAliases">
+         <map keyClass="java.lang.String" valueClass="java.lang.String">
+            <!-- Use the HAPartition cache for ClusteredSSO caching -->
+            <entry>
+               <key>clustered-sso</key>
+               <value>ha-partition</value>
+            </entry>
+            <!-- Handle the legacy name for the EJB3 SFSB cache -->
+            <entry>
+               <key>jboss.cache:service=EJB3SFSBClusteredCache</key>
+               <value>sfsb-cache</value>
+            </entry>
+            <!-- Handle the legacy name for the EJB3 Entity cache -->
+            <entry>
+               <key>jboss.cache:service=EJB3EntityTreeCache</key>
+               <value>mvcc-shared</value>
+            </entry>
+         </map>
+      </property>
+      
+      <!-- Start these caches as part of the start of this CacheManager
+      <property name="eagerStartCaches">
+         <set>
+            <value>ha-partition</value>
+         </set>
+      </property>
+      -->
+      
+   </bean>
+   
+   <!-- 
+     | Registry of named JBoss Cache configurations. Users of the CacheManager
+     | request a cache with a particular configuration by providing the name
+     | of one of these configurations.
+   -->
+   <bean name="CacheConfigurationRegistry" class="org.jboss.ha.cachemanager.DependencyInjectedConfigurationRegistry">
+   
+      <!-- If users wish to add configs using a more familiar JBC config format
+           they can add them to a cache-configs.xml file specified by this property.
+           However, use of the microcontainer format used below is recommended.
+      <property name="configResource">META-INF/jboss-cache-configs.xml</property>      
+      -->
+      
+      <!-- The configurations. A Map<String name, Configuration config> -->
+      <property name="newConfigurations">
+        <map keyClass="java.lang.String" valueClass="org.jboss.cache.config.Configuration">
+   
+   <!-- The standard configurations follow.  You can add your own and/or edit these. -->   
+      
+   <!-- Standard cache used for web sessions -->
+   <entry><key>standard-session-cache</key>
+   <value>      
+      <bean name="StandardSessionCacheConfig" class="org.jboss.cache.config.Configuration">
+         
+         <!-- Provides batching functionality for caches that don't want to interact with regular JTA Transactions -->
+         <property name="transactionManagerLookupClass">org.jboss.cache.transaction.BatchModeTransactionManagerLookup</property>
+               
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-SessionCache</property>
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+              because we are using asynchronous replication. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <property name="fetchInMemoryState">true</property>
+         
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+         <property name="cacheMode">REPL_ASYNC</property>
+      
+         <!-- Number of milliseconds to wait until all responses for a
+              synchronous call have been received. Make this longer 
+              than lockAcquisitionTimeout.-->
+         <property name="syncReplTimeout">17500</property>
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+         <!-- The max amount of time (in milliseconds) we wait until the
+          state (ie. the contents of the cache) are retrieved from
+          existing members at startup. -->
+         <property name="stateRetrievalTimeout">60000</property>
+      
+         <!-- Not needed for a web session cache that doesn't use FIELD -->
+         <property name="useRegionBasedMarshalling">false</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">false</property>
+         
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+           
+         <property name="exposeManagementStatistics">true</property>
+      
+         <property name="buddyReplicationConfig">
+            <bean class="org.jboss.cache.config.BuddyReplicationConfig">
+               
+               <!--  Just set to true to turn on buddy replication -->
+               <property name="enabled">false</property>
+               
+               <!-- A way to specify a preferred replication group.  We try
+                    and pick a buddy who shares the same pool name (falling 
+                    back to other buddies if not available). -->
+               <property name="buddyPoolName">default</property>
+               
+               <property name="buddyCommunicationTimeout">17500</property>
+               
+               <!-- Do not change these -->
+               <property name="autoDataGravitation">false</property>
+               <property name="dataGravitationRemoveOnFind">true</property>
+               <property name="dataGravitationSearchBackupTrees">true</property>
+               
+               <property name="buddyLocatorConfig">
+                  <bean class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
+                     <!-- The number of backup copies we maintain -->
+                     <property name="numBuddies">1</property>
+                     <!-- Means that each node will *try* to select a buddy on 
+                          a different physical host. If not able to do so 
+                          though, it will fall back to colocated nodes. -->
+                     <property name="ignoreColocatedBuddies">true</property>
+                   </bean>
+               </property>
+            </bean>
+         </property>
+         <property name="cacheLoaderConfig">
+            <bean class="org.jboss.cache.config.CacheLoaderConfig">
+                   <!-- Do not change these -->
+                   <property name="passivation">true</property>
+                   <property name="shared">false</property>
+                   
+                   <property name="individualCacheLoaderConfigs">
+                     <list>
+                        <bean class="org.jboss.cache.loader.FileCacheLoaderConfig">
+                           <!-- Where passivated sessions are stored -->
+                           <property name="location">${jboss.server.data.dir}${/}session</property>
+                           <!-- Do not change these -->
+                           <property name="async">false</property>
+                           <property name="fetchPersistentState">true</property>
+                           <property name="purgeOnStartup">true</property>
+                           <property name="ignoreModifications">false</property>
+                           <property name="checkCharacterPortability">false</property>
+                        </bean>
+                     </list>
+                   </property>
+            </bean>
+         </property>
+      </bean>      
+   </value>
+   </entry>
+   
+   <!-- Appropriate for web sessions with FIELD granularity -->
+   <entry><key>field-granularity-session-cache</key>
+   <value>
+      
+      <bean name="FieldSessionCacheConfig" class="org.jboss.cache.config.Configuration">
+      
+         <!-- Provides batching functionality for caches that don't want to interact with regular JTA Transactions -->
+         <property name="transactionManagerLookupClass">org.jboss.cache.transaction.BatchModeTransactionManagerLookup</property>
+               
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-FieldSessionCache</property>
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+              because we are using asynchronous replication. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <property name="fetchInMemoryState">true</property>      
+      
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+         <property name="cacheMode">REPL_ASYNC</property>
+      
+         <property name="syncReplTimeout">17500</property>
+         <property name="lockAcquisitionTimeout">15000</property>
+         <property name="stateRetrievalTimeout">60000</property>
+          
+         <!-- Field granularity requires region-based marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+         
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+           
+         <property name="exposeManagementStatistics">true</property>
+      
+         <property name="buddyReplicationConfig">
+            <bean class="org.jboss.cache.config.BuddyReplicationConfig">
+               
+               <!--  Just set to true to turn on buddy replication -->
+               <property name="enabled">false</property>
+               <!-- A way to specify a preferred replication group.  We try
+                    and pick a buddy who shares the same pool name (falling 
+                    back to other buddies if not available). -->
+               <property name="buddyPoolName">default</property>
+               <property name="buddyCommunicationTimeout">17500</property>
+
+               <!-- Do not change these -->
+               <property name="autoDataGravitation">false</property>
+               <property name="dataGravitationRemoveOnFind">true</property>
+               <property name="dataGravitationSearchBackupTrees">true</property>
+               
+               <property name="buddyLocatorConfig">
+                  <bean class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
+                     <!-- The number of backup nodes we maintain -->
+                     <property name="numBuddies">1</property>
+                     <!-- Means that each node will *try* to select a buddy on 
+                          a different physical host. If not able to do so 
+                          though, it will fall back to colocated nodes. -->
+                     <property name="ignoreColocatedBuddies">true</property>
+                   </bean>
+               </property>
+            </bean>
+         </property>
+         <property name="cacheLoaderConfig">
+            <bean class="org.jboss.cache.config.CacheLoaderConfig">
+                   <!-- Do not change these -->
+                   <property name="passivation">true</property>
+                   <property name="shared">false</property>
+                   
+                   <property name="individualCacheLoaderConfigs">
+                     <list>
+                        <bean class="org.jboss.cache.loader.FileCacheLoaderConfig">
+                           <!-- Where passivated sessions are stored -->
+                           <property name="location">${jboss.server.data.dir}${/}field-session</property>
+                           <!-- Do not change these -->
+                           <property name="async">false</property>
+                           <property name="fetchPersistentState">true</property>
+                           <property name="purgeOnStartup">true</property>
+                           <property name="ignoreModifications">false</property>
+                           <property name="checkCharacterPortability">false</property>
+                        </bean>
+                     </list>
+                   </property>
+            </bean>
+         </property>
+
+      </bean>
+   </value>
+   </entry>  
+      
+   <!-- Standard cache used for EJB3 SFSB caching -->
+   <entry><key>sfsb-cache</key>
+   <value>      
+      <bean name="StandardSFSBCacheConfig" class="org.jboss.cache.config.Configuration">
+
+         <!--  No transaction manager lookup -->
+               
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-SFSBCache</property>
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+              because we are using asynchronous replication. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <property name="fetchInMemoryState">true</property>
+         
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+         <property name="cacheMode">REPL_ASYNC</property>
+      
+         <!-- Number of milliseconds to wait until all responses for a
+              synchronous call have been received. Make this longer 
+              than lockAcquisitionTimeout.-->
+         <property name="syncReplTimeout">17500</property>
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+         <!-- The max amount of time (in milliseconds) we wait until the
+          state (ie. the contents of the cache) are retrieved from
+          existing members at startup. -->
+         <property name="stateRetrievalTimeout">60000</property>
+      
+         <!--
+          SFSBs use region-based marshalling to provide for partial state
+          transfer during deployment/undeployment.
+         -->
+         <property name="useRegionBasedMarshalling">false</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">false</property>
+         
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+           
+         <property name="exposeManagementStatistics">true</property>
+      
+         <property name="buddyReplicationConfig">
+            <bean class="org.jboss.cache.config.BuddyReplicationConfig">
+               
+               <!--  Just set to true to turn on buddy replication -->
+               <property name="enabled">false</property>
+               
+               <!-- A way to specify a preferred replication group.  We try
+                    and pick a buddy who shares the same pool name (falling 
+                    back to other buddies if not available). -->
+               <property name="buddyPoolName">default</property>
+               
+               <property name="buddyCommunicationTimeout">17500</property>
+               
+               <!-- Do not change these -->
+               <property name="autoDataGravitation">false</property>
+               <property name="dataGravitationRemoveOnFind">true</property>
+               <property name="dataGravitationSearchBackupTrees">true</property>
+               
+               <property name="buddyLocatorConfig">
+                  <bean class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
+                     <!-- The number of backup nodes we maintain -->
+                     <property name="numBuddies">1</property>
+                     <!-- Means that each node will *try* to select a buddy on 
+                          a different physical host. If not able to do so 
+                          though, it will fall back to colocated nodes. -->
+                     <property name="ignoreColocatedBuddies">true</property>
+                   </bean>
+               </property>
+            </bean>
+         </property>
+         <property name="cacheLoaderConfig">
+            <bean class="org.jboss.cache.config.CacheLoaderConfig">
+                   <!-- Do not change these -->
+                   <property name="passivation">true</property>
+                   <property name="shared">false</property>
+                   
+                   <property name="individualCacheLoaderConfigs">
+                     <list>
+                        <bean class="org.jboss.cache.loader.FileCacheLoaderConfig">
+                           <!-- Where passivated sessions are stored -->
+                           <property name="location">${jboss.server.data.dir}${/}sfsb</property>
+                           <!-- Do not change these -->
+                           <property name="async">false</property>
+                           <property name="fetchPersistentState">true</property>
+                           <property name="purgeOnStartup">true</property>
+                           <property name="ignoreModifications">false</property>
+                           <property name="checkCharacterPortability">false</property>
+                        </bean>
+                     </list>
+                   </property>
+            </bean>
+         </property>
+        
+         <!-- EJBs use JBoss Cache eviction -->
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                     </property>
+                  </bean>
+               </property>
+               <!-- EJB3 integration code will programatically create
+                    other regions as beans are deployed -->
+            </bean>
+         </property>
+      </bean>      
+   </value>
+   </entry>
+   
+   <!-- 
+      Appropriate for the HAPartition-based services, e.g. DistributedState, 
+      HA-JNDI. Also valid for use by the JBossWeb ClusteredSingleSignOn valve.
+    -->
+   <entry><key>ha-partition</key>
+   <value>
+      
+      <bean name="HAPartitionCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Provides batching functionality for caches that don't want to interact with regular JTA Transactions -->
+         <property name="transactionManagerLookupClass">org.jboss.cache.transaction.BatchModeTransactionManagerLookup</property>
+               
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-HAPartitionCache</property>
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <property name="fetchInMemoryState">true</property>          
+      
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+         <property name="cacheModeString">REPL_SYNC</property>
+      
+         <property name="syncReplTimeout">17500</property>
+         <property name="lockAcquisitionTimeout">15000</property>
+         <property name="stateRetrievalTimeout">60000</property>
+      
+         <property name="useRegionBasedMarshalling">false</property>
+         <property name="inactiveOnStartup">false</property>
+         
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+           
+         <property name="exposeManagementStatistics">true</property>
+      </bean>
+   </value>
+   </entry>
+
+    <!-- 
+      Following are JBoss Cache configurations suitable for different 
+      Hibernate 2nd Level Cache uses (e.g. entities vs. queries).
+      
+      In all cases, TransactionManager configuration not required.
+      Hibernate will plug in its own transaction manager integration. 
+    -->
+    
+   <!-- A config appropriate for entity/collection caching that uses MVCC locking -->
+   <entry><key>mvcc-entity</key>
+   <value>      
+      <bean name="MVCCEntityCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">MVCC</property>
+         <!-- READ_COMMITTED is as strong as necessary for most 
+              2nd Level Cache use cases. -->
+         <property name="isolationLevel">READ_COMMITTED</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Mode of communication with peer caches.        
+              INVALIDATION_SYNC is highly recommended as the mode for use
+              with entity and collection caches.     -->
+         <property name="cacheMode">INVALIDATION_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-entity</property>        
+         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
+              slightly better (no JGroups FC) but we stick with udp to
+              help ensure this cache and others like timestamps-cache
+              that require FC can use the same underlying JGroups resources. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Whether or not to fetch state on joining a cluster. -->
+         <property name="fetchInMemoryState">false</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+    
+   <!-- A config appropriate for entity/collection caching that uses optimistic locking. -->
+   <entry><key>optimistic-entity</key>
+   <value>      
+      <bean name="OptimisticEntityCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">OPTIMISTIC</property>
+
+         <!-- Mode of communication with peer caches.        
+              INVALIDATION_SYNC is highly recommended as the mode for use
+              with entity and collection caches.     -->
+         <property name="cacheMode">INVALIDATION_SYNC</property> 
+         <property name="useLockStriping">false</property>
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-opt-entity</property>        
+         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
+              slightly better (no JGroups FC) but we stick with udp to
+              help ensure this cache and others like timestamps-cache
+              that require FC can use the same underlying JGroups resources. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Whether or not to fetch state on joining a cluster. -->
+         <property name="fetchInMemoryState">false</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+    
+   <!-- A config appropriate for entity/collection caching that uses pessimistic locking -->
+   <entry><key>pessimistic-entity</key>
+   <value>      
+      <bean name="PessimisticEntityCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <!-- READ_COMMITTED is as strong as necessary for most 
+              2nd Level Cache use cases. -->
+         <property name="isolationLevel">READ_COMMITTED</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Mode of communication with peer caches.        
+              INVALIDATION_SYNC is highly recommended as the mode for use
+              with entity and collection caches.     -->
+         <property name="cacheMode">INVALIDATION_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-entity</property>        
+         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
+              slightly better (no JGroups FC) but we stick with udp to
+              help ensure this cache and others like timestamps-cache
+              that require FC can use the same underlying JGroups resources. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Whether or not to fetch state on joining a cluster. -->
+         <property name="fetchInMemoryState">false</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+    
+   <!-- Same as "mvcc-entity" but here we use REPEATABLE_READ
+        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
+        application evicts/clears entities from the Hibernate Session and 
+        then expects to repeatably re-read them in the same transaction.
+        Otherwise, the Session's internal cache provides a repeatable-read 
+        semantic. Before choosing this config, carefully read the docs
+        and make sure you really need REPEATABLE_READ. -->
+   <entry><key>mvcc-entity-repeatable</key>
+   <value>      
+      <bean name="MVCCEntityRepeatableCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">MVCC</property>
+         <!-- Here we  use REPEATABLE_READ. -->
+         <property name="isolationLevel">READ_COMMITTED</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Mode of communication with peer caches.        
+              INVALIDATION_SYNC is highly recommended as the mode for use
+              with entity and collection caches.     -->
+         <property name="cacheMode">INVALIDATION_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-entity-rr</property>        
+         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
+              slightly better (no JGroups FC) but we stick with udp to
+              help ensure this cache and others like timestamps-cache
+              that require FC can use the same underlying JGroups resources. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Whether or not to fetch state on joining a cluster. -->
+         <property name="fetchInMemoryState">false</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+   
+   <!-- Same as "pessimistic-entity" but here we use REPEATABLE_READ
+        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
+        application evicts/clears entities from the Hibernate Session and 
+        then expects to repeatably re-read them in the same transaction.
+        Otherwise, the Session's internal cache provides a repeatable-read 
+        semantic. Before choosing this config, carefully read the docs
+        and make sure you really need REPEATABLE_READ.
+   -->
+   <entry><key>pessimistic-entity-repeatable</key>
+   <value>      
+      <bean name="PessimisticEntityRepeatableCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Mode of communication with peer caches.        
+              INVALIDATION_SYNC is highly recommended as the mode for use
+              with entity and collection caches.     -->
+         <property name="cacheMode">INVALIDATION_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-entity-rr</property>        
+         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
+              slightly better (no JGroups FC) but we stick with udp to
+              help ensure this cache and others like timestamps-cache
+              that require FC can use the same underlying JGroups resources. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Whether or not to fetch state on joining a cluster. -->
+         <property name="fetchInMemoryState">false</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+                  
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+
+   <!-- A config appropriate for query caching. Does not replicate
+        queries. DO NOT STORE TIMESTAMPS IN THIS CACHE. -->
+   <entry><key>local-query</key>
+   <value>      
+      <bean name="LocalQueryCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">OPTIMISTIC</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- LOCAL means don't communicate with other caches.  -->
+         <property name="cacheMode">LOCAL</property> 
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+
+   <!-- A query cache that replicates querie results. Replication is asynchronous.
+         DO NOT STORE TIMESTAMPS IN THIS CACHE as no initial state transfer
+         is performed. -->
+   <entry><key>replicated-query</key>
+   <value>      
+      <bean name="ReplicatedQueryCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">OPTIMISTIC</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Mode of communication with peer caches.        
+              REPL_ASYNC means replicate but sender does not block waiting for
+              peers to acknowledge applying the change. Valid for queries as
+              the timestamp cache mechanism will allow Hibernate to discard
+              out-of-date queries.  -->
+         <property name="cacheMode">REPL_ASYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-query</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Whether or not to fetch state on joining a cluster. -->
+         <property name="fetchInMemoryState">false</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>         
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+
+   <!-- Optimized for timestamp caching. A clustered timestamp cache
+        is required if query caching is used, even if the query cache
+        itself is configured with CacheMode=LOCAL.
+   -->   
+   <entry><key>timestamps-cache</key>
+   <value>      
+      <bean name="TimestampsCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">MVCC</property>
+         <!-- READ_COMMITTED is as strong as necessary -->
+         <property name="isolationLevel">READ_COMMITTED</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Cannot be INVALIDATION. ASYNC for improved performance. -->
+         <property name="cacheMode">REPL_ASYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-timestamps</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Used for timestamps, so must fetch state. -->
+         <property name="fetchInMemoryState">true</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>
+         
+         <!-- We should never evict timestamps, so eviction is disabled -->
+
+      </bean>
+   </value>
+   </entry>   
+   
+   <!-- A config appropriate for a cache that's shared for
+        entity, collection, query and timestamp caching. Not an advised
+        configuration, since it requires cache mode REPL_SYNC, which is the 
+        least efficient mode. Also requires a full state transfer at startup,
+        which can be expensive. Uses mvcc locking. -->
+   <entry><key>mvcc-shared</key>
+   <value>      
+      <bean name="MVCCSharedCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">MVCC</property>
+         <!-- READ_COMMITTED is as strong as necessary for most 
+              2nd Level Cache use cases. -->
+         <property name="isolationLevel">READ_COMMITTED</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Must use REPL since used for timestamp caching. 
+              Must use SYNC to maintain cache coherency for entities. -->
+         <property name="cacheMode">REPL_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-shared</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Used for timestamps, so must fetch state. -->
+         <property name="fetchInMemoryState">true</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>        
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+   
+   <!-- A config appropriate for a cache that's shared for
+        entity, collection, query and timestamp caching. Not an advised
+        configuration, since it requires cache mode REPL_SYNC, which is the 
+        least efficient mode. Also requires a full state transfer at startup,
+        which can be expensive. Uses optimistic locking -->
+   <entry><key>optimistic-shared</key>
+   <value>      
+      <bean name="OptimisticSharedCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">OPTIMISTIC</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Must use REPL since used for timestamp caching. 
+              Must use SYNC to maintain cache coherency for entities. -->
+         <property name="cacheMode">REPL_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-opt-shared</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Used for timestamps, so must fetch state. -->
+         <property name="fetchInMemoryState">true</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>        
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>  
+   
+   <!-- A config appropriate for a cache that's shared for
+        entity, collection, query and timestamp caching. Not an advised
+        configuration, since it requires cache mode REPL_SYNC, which is the 
+        least efficient mode. Also requires a full state transfer at startup,
+        which can be expensive. Uses pessmistic locking. -->
+   <entry><key>pessimistic-shared</key>
+   <value>      
+      <bean name="PessimisticSharedCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <!-- READ_COMMITTED is as strong as necessary for most 
+              2nd Level Cache use cases. -->
+         <property name="isolationLevel">READ_COMMITTED</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Must use REPL since used for timestamp caching. 
+              Must use SYNC to maintain cache coherency for entities. -->
+         <property name="cacheMode">REPL_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-shared</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Used for timestamps, so must fetch state. -->
+         <property name="fetchInMemoryState">true</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>        
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>  
+   
+   <!-- Same as "mvcc-shared" but here we use REPEATABLE_READ
+        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
+        application evicts/clears entities from the Hibernate Session and 
+        then expects to repeatably re-read them in the same transaction.
+        Otherwise, the Session's internal cache provides a repeatable-read 
+        semantic. Before choosing this config, carefully read the docs
+        and make sure you really need REPEATABLE_READ.  -->
+   <entry><key>mvcc-shared-repeatable</key>
+   <value>      
+      <bean name="MVCCSharedRepeatableCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">MVCC</property>
+         <!-- READ_COMMITTED is as strong as necessary for most 
+              2nd Level Cache use cases. -->
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Must use REPL since used for timestamp caching. 
+              Must use SYNC to maintain cache coherency for entities. -->
+         <property name="cacheMode">REPL_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-shared-rr</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Used for timestamps, so must fetch state. -->
+         <property name="fetchInMemoryState">true</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>        
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+   
+   <!-- Same as "pessimistic-shared" but here we use REPEATABLE_READ
+        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
+        application evicts/clears entities from the Hibernate Session and 
+        then expects to repeatably re-read them in the same transaction.
+        Otherwise, the Session's internal cache provides a repeatable-read 
+        semantic. Before choosing this config, carefully read the docs
+        and make sure you really need REPEATABLE_READ. -->
+   <entry><key>pessimistic-shared-repeatable</key>
+   <value>      
+      <bean name="PessimisticSharedRepeatableCache" class="org.jboss.cache.config.Configuration">
+
+         <!-- Node locking scheme -->
+         <property name="nodeLockingScheme">PESSIMISTIC</property>
+         <property name="isolationLevel">REPEATABLE_READ</property>
+         <property name="useLockStriping">false</property>
+
+         <!-- Must use REPL since used for timestamp caching. 
+              Must use SYNC to maintain cache coherency for entities. -->
+         <property name="cacheMode">REPL_SYNC</property> 
+
+         <!-- Name of cluster. Needs to be the same for all members -->
+         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-shared-rr</property>        
+         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
+             because timestamp communication will not require a synchronous response. -->
+         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
+         <!-- Used for timestamps, so must fetch state. -->
+         <property name="fetchInMemoryState">true</property>
+
+         <!-- The max amount of time (in milliseconds) we wait until the
+           state (ie. the contents of the cache) are retrieved from
+           existing members at startup. Ignored if FetchInMemoryState=false. -->
+         <property name="stateRetrievalTimeout">60000</property>
+
+         <!-- Number of milliseconds to wait until all responses for a
+               synchronous call have been received. -->
+         <property name="syncReplTimeout">17500</property>
+
+         <!-- Max number of milliseconds to wait for a lock acquisition -->
+         <property name="lockAcquisitionTimeout">15000</property>
+
+         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
+         <property name="useRegionBasedMarshalling">true</property>
+         <!-- Must match the value of "useRegionBasedMarshalling" -->
+         <property name="inactiveOnStartup">true</property>
+
+         <!-- Disable asynchronous RPC marshalling/sending -->
+         <property name="serializationExecutorPoolSize">0</property>        
+         <!-- We have no asynchronous notification listeners -->
+         <property name="listenerAsyncPoolSize">0</property>        
+         
+         <property name="evictionConfig">
+             <bean class="org.jboss.cache.config.EvictionConfig">
+               <property name="wakeupInterval">5000</property>
+               <!--  Overall default -->
+               <property name="defaultEvictionRegionConfig">
+                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                     <property name="regionName">/</property>
+                     <property name="evictionAlgorithmConfig">
+                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
+                           <!-- Evict LRU node once we have more than this number of nodes -->
+                           <property name="maxNodes">10000</property>
+                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
+                           <property name="timeToLiveSeconds">1000</property>
+                           <!-- Don't evict a node that's been accessed within this many seconds. 
+                                Set this to a value greater than your max expected transaction length. -->
+                           <property name="minTimeToLiveSeconds">120</property>
+                        </bean>
+                     </property>
+                  </bean>
+               </property>
+               <property name="evictionRegionConfigs">
+                  <list>
+                     <!--  Don't ever evict modification timestamps -->
+                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
+                        <property name="regionName">/TS</property>
+                        <property name="evictionAlgorithmConfig">
+                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
+                        </property>
+                     </bean>
+                  </list>
+               </property>
+            </bean>
+         </property>
+      </bean>
+   </value>
+   </entry>
+       
+         </map>
+      </property>
+   </bean>
+    
+</deployment>
\ No newline at end of file


Property changes on: branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Added: branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jgroups/jgroups-channelfactory-stacks.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jgroups/jgroups-channelfactory-stacks.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jgroups/jgroups-channelfactory-stacks.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE protocol_stacks [
+   <!ENTITY shared-tcp '
+		<!--  TCP transport config meant to be shared between different channels
+		      with different requirements. Message bundling is disabled in this 
+		      general-purpose config as it can add latency to synchronous RPCs. -->
+		
+            <TCP
+                 singleton_name="tcp"
+                 start_port="${jboss.jgroups.tcp.tcp_port:7600}"
+                 tcp_nodelay="true"
+                 loopback="true"
+                 recv_buf_size="20000000"
+                 send_buf_size="640000"
+                 discard_incompatible_packets="true"
+                 max_bundle_size="64000"
+                 max_bundle_timeout="30"
+                 use_incoming_packet_handler="true"
+                 enable_bundling="false"
+                 use_send_queues="false"
+                 sock_conn_timeout="300"
+                 skip_suspected_members="true"
+                 timer.num_threads="12"
+                 enable_diagnostics="${jboss.jgroups.enable_diagnostics:true}"
+                 diagnostics_addr="${jboss.jgroups.diagnostics_addr:224.0.75.75}"
+                 diagnostics_port="${jboss.jgroups.diagnostics_port:7500}"
+   
+                 thread_pool.enabled="true"
+                 thread_pool.min_threads="20"
+                 thread_pool.max_threads="200"
+                 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="20"
+                 oob_thread_pool.max_threads="200"
+                 oob_thread_pool.keep_alive_time="1000"
+                 oob_thread_pool.queue_enabled="false"
+                 oob_thread_pool.rejection_policy="discard"/>
+		'>
+]>
+
+
+<!--
+  Standard JGroups protocol stacks definitions, used by the JChannelFactory bean.
+  
+  Author: Bela Ban, Brian Stansberry
+  Version: $Id:jgroups-channelfactory-stacks.xml 71313 2008-03-26 19:46:59Z bstansberry at jboss.com $
+-->
+<protocol_stacks>
+
+    <stack name="tcp"
+           description="TCP based stack, with flow control and message bundling. 
+                        TCP stacks are usually used when IP multicasting cannot 
+                        be used in a network, e.g. because it is disabled (e.g. 
+                        routers discard multicast)">
+        <config>
+            &shared-tcp;
+            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
+            <MERGE2 max_interval="100000" min_interval="20000"/>
+            <FD_SOCK start_port="${jboss.jgroups.tcp.fd_sock_port:57600}"/>
+            <FD timeout="6000" max_tries="5" shun="true"/>
+            <VERIFY_SUSPECT timeout="1500"/>
+            <BARRIER/>
+            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
+                           retransmit_timeout="300,600,1200,2400,4800"
+                           discard_delivered_msgs="true"/>
+            <UNICAST timeout="300,600,1200,2400,3600"/>
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           max_bytes="400000"/>            
+            <VIEW_SYNC avg_send_interval="10000"/>               
+            <pbcast.GMS print_local_addr="true" join_timeout="3000"
+                        shun="true"
+                        view_bundling="true"
+                        view_ack_collection_timeout="5000"
+                        resume_task_timeout="7500"/>
+            <FC max_credits="2000000" min_threshold="0.10" 
+                ignore_synchronous_response="true"/>
+            <FRAG2 frag_size="60000"/>
+            <!-- pbcast.STREAMING_STATE_TRANSFER/ -->
+            <pbcast.STATE_TRANSFER/>
+            <pbcast.FLUSH timeout="0" start_flush_timeout="10000"/>
+        </config>
+    </stack>
+
+
+    <stack name="tcp-sync"
+           description="TCP based stack, without flow control and without 
+                        message bundling. TCP stacks are usually used when IP 
+                        multicasting cannot be used in a network (e.g.routers 
+                        discard multicast). This configuration should be used 
+                        instead of 'tcp' above when (1) synchronous calls are 
+                        used and (2) the message volume (rate and size) is not 
+                        that large.">
+        <config>
+            <TCP
+                 singleton_name="tcp_sync"
+                 start_port="${jboss.jgroups.tcp_sync.tcp_port:7650}"
+                 tcp_nodelay="true"
+                 loopback="true"
+                 recv_buf_size="20000000"
+                 send_buf_size="640000"
+                 discard_incompatible_packets="true"
+                 enable_bundling="false"
+                 use_send_queues="false"
+                 sock_conn_timeout="300"
+                 skip_suspected_members="true"
+                 enable_diagnostics="${jboss.jgroups.enable_diagnostics:true}"
+                 diagnostics_addr="${jboss.jgroups.diagnostics_addr:224.0.75.75}"
+                 diagnostics_port="${jboss.jgroups.diagnostics_port:7500}"
+                 
+                 thread_pool.enabled="true"
+                 thread_pool.min_threads="8"
+                 thread_pool.max_threads="200"
+                 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="20"
+                 oob_thread_pool.max_threads="200"
+                 oob_thread_pool.keep_alive_time="1000"
+                 oob_thread_pool.queue_enabled="false"
+                 oob_thread_pool.rejection_policy="discard"/>
+            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
+            <MERGE2 max_interval="100000" min_interval="20000"/>
+            <FD_SOCK start_port="${jboss.jgroups.tcp_sync.fd_sock_port:57650}"/>
+            <FD timeout="6000" max_tries="5" shun="true"/>
+            <VERIFY_SUSPECT timeout="1500"/>
+            <BARRIER/>
+            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
+                           retransmit_timeout="300,600,1200,2400,4800"
+                           discard_delivered_msgs="true"/>
+            <UNICAST timeout="300,600,1200,2400,3600"/>
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           max_bytes="400000"/>            
+            <VIEW_SYNC avg_send_interval="10000"/>
+            <pbcast.GMS print_local_addr="true" join_timeout="3000"
+                        shun="true"
+                        view_bundling="true"
+                        view_ack_collection_timeout="5000"
+                        resume_task_timeout="7500"/>
+            <!-- pbcast.STREAMING_STATE_TRANSFER/ -->
+            <pbcast.STATE_TRANSFER/>
+            <pbcast.FLUSH timeout="0" start_flush_timeout="10000"/>
+        </config>
+    </stack>
+    
+    <stack name="jbm-control"
+           description="Stack optimized for the JBoss Messaging Control Channel">
+       <config>
+            <!-- By default we use the same TCP transport protocol config as is 
+                 used for the default 'tcp' stack defined above. This allows
+                 the JBoss Messaging Control Channel to use the same sockets,
+                 network buffers and thread pools as are used by the other
+                 standard JBoss AS clustered services.
+                
+                 The TCP config is included via an XML entity to ensure that
+                 it remains consistent between this stack and the 'tcp' 
+                 stack above.
+            -->
+            &shared-tcp;
+            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
+            <MERGE2 max_interval="100000"
+                    min_interval="20000"/>
+            <FD_SOCK start_port="${jboss.jgroups.jbm_control.fd_sock_port:53200}"/>
+            <FD timeout="6000" 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,2400,3600"/>
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           max_bytes="400000"/>
+            <VIEW_SYNC avg_send_interval="10000"/>
+            <pbcast.GMS print_local_addr="true" join_timeout="3000"
+                shun="true"
+                view_bundling="true"/>
+            <FC max_credits="500000" min_threshold="0.20" 
+                ignore_synchronous_response="true"/>
+            <FRAG2 frag_size="60000"  />
+            <pbcast.STATE_TRANSFER/>
+            <pbcast.FLUSH timeout="20000" start_flush_timeout="10000"/>
+        </config>
+    </stack>
+    
+    
+    <stack name="jbm-data"
+           description="Stack optimized for the JBoss Messaging Data Channel">
+        <config>
+            <TCP singleton_name="jbm-data"
+                 start_port="${jboss.messaging.datachanneltcpport,jboss.jgroups.jbm_data.tcp_port:7900}"
+                 loopback="true"
+                 recv_buf_size="20000000"
+                 send_buf_size="640000"
+                 discard_incompatible_packets="true"
+                 enable_bundling="false"
+                 use_send_queues="false"
+                 sock_conn_timeout="300"
+                 skip_suspected_members="true"
+                 enable_diagnostics="${jboss.jgroups.enable_diagnostics:true}"
+                 diagnostics_addr="${jboss.jgroups.diagnostics_addr:224.0.75.75}"
+                 diagnostics_port="${jboss.jgroups.diagnostics_port:7500}"
+                 
+                 thread_pool.enabled="true"
+                 thread_pool.min_threads="8"
+                 thread_pool.max_threads="200"
+                 thread_pool.keep_alive_time="5000"
+                 thread_pool.queue_enabled="true" 
+                 thread_pool.queue_max_size="500"
+                 thread_pool.rejection_policy="discard"
+                 
+                 oob_thread_pool.enabled="true"
+                 oob_thread_pool.min_threads="1"
+                 oob_thread_pool.max_threads="100" 
+                 oob_thread_pool.keep_alive_time="5000"
+                 oob_thread_pool.queue_enabled="false"
+                 oob_thread_pool.rejection_policy="discard"/>
+            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
+            <MERGE2 max_interval="100000" min_interval="20000"/>
+            <FD_SOCK start_port="${jboss.jgroups.jbm_data.fd_sock_port:57900}"/>
+            <FD timeout="6000" max_tries="5" shun="true"/>
+            <VERIFY_SUSPECT timeout="1500"/>
+            <BARRIER/>
+            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
+                           retransmit_timeout="300,600,1200,2400,4800"
+                           discard_delivered_msgs="true"/>
+            <UNICAST timeout="300,600,1200,2400,3600"/>
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           max_bytes="400000"/>
+            <VIEW_SYNC avg_send_interval="10000"/>
+
+            <pbcast.GMS print_local_addr="true" join_timeout="3000"
+                shun="true" view_bundling="true"/>
+        </config>
+    </stack>
+
+</protocol_stacks>
+
+


Property changes on: branches/Branch_No_Multicast/cluster/src/installers/ec2/resources/jgroups/jgroups-channelfactory-stacks.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision

Added: branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/build.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/build.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/build.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~ Red Hat licenses this file to you under the Apache License, version
+  ~ 2.0 (the "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~ implied.  See the License for the specific language governing
+  ~ permissions and limitations under the License.
+  -->
+<project default="install" name="mod_cluster EC2 Installer" basedir=".">
+
+   <property name="ec2.profile" value="mod_cluster-ec2"/>
+	<property name="mod_cluster.sar" value="mod-cluster.sar"/>
+   <property name="install.root" value="../../"/>
+
+   <property name="install.server" value="${install.root}/server"/>
+   <property name="install.production" value="${install.server}/production"/>
+   <property name="install.ec2" value="${install.server}/${ec2.profile}"/>
+   <property name="install.ec2.deploy" value="${install.ec2}/deploy"/>
+   
+   <target name="install">
+
+      <!-- Build ec2 based on production -->
+      <!-- Copy server/production to server/ec2 -->
+      <copy todir="${install.ec2}">
+         <fileset dir="${install.production}">
+            <exclude name="deploy/cluster/jgroups-channelfactory.sar/META-INF/jgroups-channelfactory-stacks.xml"/>
+            <exclude name="deploy/cluster/jboss-cache-manager.sar/**"/>
+         	<exclude name="deploy/jbossweb.sar/server.xml"/>
+            <exclude name="deploy/jbossweb.sar/META-INF/jboss-beans.xml"/>
+         </fileset>
+      </copy>
+      
+      <!-- Add in the modified-for-ec2 content -->
+      <copy file="${basedir}/resources/jgroups/jgroups-channelfactory-stacks.xml"
+         todir="${install.ec2.deploy}/cluster/jgroups-channelfactory.sar/META-INF/"/>
+      
+      <mkdir dir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF"/>
+      <copy file="${basedir}/resources/jboss-cache/jboss-cache-configs.xml" 
+         todir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF/"/>  
+      <copy file="${basedir}/resources/jboss-cache/jboss-cache-manager-jboss-beans.xml" 
+         todir="${install.ec2.deploy}/cluster/jboss-cache-manager.sar/META-INF/"/>
+
+      <!-- Add mod-cluster.sar -->
+      <mkdir dir="${install.ec2.deploy}/mod-cluster.sar/META-INF"/>
+<!-- From where do we get mod-cluster.jar?
+      <copy file="${basedir}/lib/mod-cluster.jar"
+         todir="${install.ec2.deploy}/${mod_cluster.sar}/"/>
+-->
+      <copy file="${basedir}/resources/mod_cluster/mod-cluster-jboss-beans.xml"
+         todir="${install.ec2.deploy}/${mod_cluster.sar}/META-INF"/>
+      
+      <!-- Add in the modified-for-mod_cluster content -->
+      <copy file="${basedir}/resources/jbossweb/server.xml"
+         todir="${install.ec2.deploy}/jbossweb.sar/"/>
+      <copy file="${basedir}/resources/jbossweb/jboss-beans.xml"
+         todir="${install.ec2.deploy}/jbossweb.sar/META-INF"/>
+   </target>
+   
+</project>
\ No newline at end of file

Added: branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/jboss-beans.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/jboss-beans.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/jboss-beans.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <bean name="WebServer"
+         class="org.jboss.web.tomcat.service.deployers.TomcatService">
+         
+      <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=WebServer", exposedInterface=org.jboss.web.tomcat.service.deployers.TomcatServiceMBean.class,registerDirectly=true)</annotation>
+
+      <!-- Only needed if the org.jboss.web.tomcat.service.jca.CachedConnectionValve
+           is enabled in the tomcat server.xml file.
+      -->
+      <depends>jboss.jca:service=CachedConnectionManager</depends>
+
+      <!-- Transaction manager for unfinished transaction checking in the CachedConnectionValve -->      
+      <depends>jboss:service=TransactionManager</depends>
+
+      <depends>HAModClusterService</depends>
+
+      <!-- Inject the TomcatDeployer -->
+      <property name="tomcatDeployer"><inject bean="WarDeployer"/></property>
+      <!-- Set the securityManagerService used to flush the auth cache on session expiration -->
+      <property name="securityManagerService">
+         <inject bean="jboss.security:service=JaasSecurityManager" />
+      </property>
+      <!-- 
+         Do not configure other JMX attributes via this file.
+         Use the WarDeployer bean in deployers/jboss-web.deployer/war-deployers-beans.xml
+      -->
+
+   </bean>
+
+   <bean name="WebServerMO"
+      class="org.jboss.web.tomcat.service.management.WebServer">
+      <property name="domain">jboss.web</property>
+      <property name="nameProps">
+         <map class="java.util.Properties" keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>service</key>
+               <value>WebServer</value>
+            </entry>
+         </map>
+      </property>
+   </bean>
+
+   <bean name="ConnectorBean-http-${jboss.bind.address}-8080MO"
+      class="org.jboss.web.tomcat.service.management.ConnectorBean">
+      <property name="domain">jboss.web</property>
+      <property name="nameProps">
+         <map class="java.util.Properties" keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>type</key>
+               <value>GlobalRequestProcessor</value>
+            </entry>
+         </map>
+      </property>
+      <property name="port">
+         <value-factory bean="ServiceBindingManager"
+            method="getIntBinding" >
+            <parameter>jboss.web:service=WebServer</parameter>
+         </value-factory>
+      </property>
+      <property name="address">
+         <value-factory bean="ServiceBindingManager"
+            method="getStringBinding" >
+            <parameter>jboss.web:service=WebServer</parameter>
+         </value-factory>
+      </property>
+      <property name="server"><inject bean="JMXKernel" property="mbeanServer"/></property>
+   </bean>
+   <bean name="ThreadPool-http-${jboss.bind.address}-8080MO"
+      class="org.jboss.web.tomcat.service.management.ThreadPool">
+      <property name="domain">jboss.web</property>
+      <property name="nameProps">
+         <map class="java.util.Properties" keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>type</key>
+               <value>ThreadPool</value>
+            </entry>
+         </map>
+      </property>
+      <property name="port">
+         <value-factory bean="ServiceBindingManager"
+            method="getIntBinding" parameter="jboss.web:service=WebServer"/>
+      </property>
+      <property name="address">
+         <value-factory bean="ServiceBindingManager"
+            method="getStringBinding" parameter="jboss.web:service=WebServer"/>
+      </property>
+      <property name="server"><inject bean="JMXKernel" property="mbeanServer"/></property>
+   </bean>
+   <bean name="${jboss.bind.address}-MO"
+      class="org.jboss.web.tomcat.service.management.Host">
+      <property name="domain">jboss.web</property>
+      <property name="nameProps">
+         <map class="java.util.Properties" keyClass="java.lang.String" valueClass="java.lang.String">
+            <entry>
+               <key>type</key>
+               <value>Host</value>
+            </entry>
+         <entry>
+            <key>host</key>
+            <value>
+               <value-factory bean="ServiceBindingManager"
+                  method="getStringBinding" parameter="jboss.web:service=WebServer"/>
+            </value>
+         </entry>
+         </map>
+      </property>
+   </bean>
+
+   
+</deployment>

Added: branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/server.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/server.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/server.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,169 @@
+<Server>
+
+   <!-- Optional listener which ensures correct init and shutdown of APR,
+        and provides information if it is not installed -->
+   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+   <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
+   <Listener className="org.apache.catalina.core.JasperListener" />
+   <Listener className="org.jboss.web.tomcat.service.deployers.MicrocontainerIntegrationLifecycleListener" delegateBeanName="ModClusterService"/>
+
+   <Service name="jboss.web">
+
+      <!-- A HTTP/1.1 Connector on port 8080 -->
+      <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" 
+               connectionTimeout="20000" redirectPort="8443" />
+
+      <!-- Add this option to the connector to avoid problems with 
+          .NET clients that don't implement HTTP/1.1 correctly 
+         restrictedUserAgents="^.*MS Web Services Client Protocol 1.1.4322.*$"
+      -->
+
+      <!-- A AJP 1.3 Connector on port 8009 -->
+      <Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
+         redirectPort="8443" />
+
+      <!-- SSL/TLS Connector configuration using the admin devl guide keystore
+      <Connector protocol="HTTP/1.1" SSLEnabled="true" 
+           port="8443" address="${jboss.bind.address}"
+           scheme="https" secure="true" clientAuth="false" 
+           keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
+           keystorePass="rmi+ssl" sslProtocol = "TLS" />
+      -->
+
+      <Engine name="jboss.web" defaultHost="localhost" jvmRoute="${jboss.jvmRoute}">
+
+         <!-- The JAAS based authentication and authorization realm implementation
+         that is compatible with the jboss 3.2.x realm implementation.
+         - certificatePrincipal : the class name of the
+         org.jboss.security.auth.certs.CertificatePrincipal impl
+         used for mapping X509[] cert chains to a Princpal.
+         - allRolesMode : how to handle an auth-constraint with a role-name=*,
+         one of strict, authOnly, strictAuthOnly
+           + strict = Use the strict servlet spec interpretation which requires
+           that the user have one of the web-app/security-role/role-name
+           + authOnly = Allow any authenticated user
+           + strictAuthOnly = Allow any authenticated user only if there are no
+           web-app/security-roles
+         -->
+         <Realm className="org.jboss.web.tomcat.security.JBossWebRealm"
+            certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"
+            allRolesMode="authOnly"
+            />
+         <!-- A subclass of JBossSecurityMgrRealm that uses the authentication
+         behavior of JBossSecurityMgrRealm, but overrides the authorization
+         checks to use JACC permissions with the current java.security.Policy
+         to determine authorized access.
+         - allRolesMode : how to handle an auth-constraint with a role-name=*,
+         one of strict, authOnly, strictAuthOnly
+           + strict = Use the strict servlet spec interpretation which requires
+           that the user have one of the web-app/security-role/role-name
+           + authOnly = Allow any authenticated user
+           + strictAuthOnly = Allow any authenticated user only if there are no
+           web-app/security-roles
+         <Realm className="org.jboss.web.tomcat.security.JaccAuthorizationRealm"
+            certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"
+            allRolesMode="authOnly"
+            />
+         -->
+
+         <Host name="localhost"> 
+
+            <!-- Uncomment to enable request dumper. This Valve "logs interesting 
+                 contents from the specified Request (before processing) and the 
+                 corresponding Response (after processing). It is especially useful 
+                 in debugging problems related to headers and cookies."
+            -->
+            <!--
+            <Valve className="org.apache.catalina.valves.RequestDumperValve" />
+            -->
+ 
+            <!-- Access logger -->
+            <!--
+            <Valve className="org.apache.catalina.valves.AccessLogValve"
+                prefix="localhost_access_log." suffix=".log"
+                pattern="common" directory="${jboss.server.log.dir}" 
+                resolveHosts="false" />
+            -->
+
+            <!-- Uncomment to enable single sign-on across web apps
+                deployed to this host. Does not provide SSO across a cluster.     
+            
+                If this valve is used, do not use the JBoss ClusteredSingleSignOn 
+                valve shown below.
+                
+                A new configuration attribute is available beginning with
+                release 4.0.4:
+                
+                cookieDomain  configures the domain to which the SSO cookie
+                              will be scoped (i.e. the set of hosts to
+                              which the cookie will be presented).  By default
+                              the cookie is scoped to "/", meaning the host
+                              that presented it.  Set cookieDomain to a
+                              wider domain (e.g. "xyz.com") to allow an SSO
+                              to span more than one hostname.
+             -->
+            <!--
+            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+            -->
+
+            <!-- Uncomment to enable single sign-on across web apps
+               deployed to this host AND to all other hosts in the cluster.
+            
+               If this valve is used, do not use the standard Tomcat SingleSignOn
+               valve shown above.
+            
+               Valve uses a JBossCache instance to support SSO credential 
+               caching and replication across the cluster.  The JBossCache 
+               instance must be configured separately.  See the 
+               "jboss-web-clusteredsso-beans.xml" file in the 
+               server/all/deploy directory for cache configuration details.
+            
+               Besides the attributes supported by the standard Tomcat
+               SingleSignOn valve (see the Tomcat docs), this version also 
+               supports the following attributes:
+            
+               cookieDomain   see non-clustered valve above
+               
+               cacheConfig    Name of the CacheManager service configuration
+                              to use for the clustered SSO cache. See
+                              deploy/cluster/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans.xml
+                              Default is "clustered-sso".
+               
+               treeCacheName  Deprecated. Use "cacheConfig". 
+                              JMX ObjectName of the JBoss Cache MBean used to 
+                              support credential caching and replication across
+                              the cluster. Only used if no cache can be located
+                              from the CacheManager service using the "cacheConfig"
+                              attribute (or its default value). If not set, the 
+                              default is "jboss.cache:service=TomcatClusteringCache"
+                              
+               maxEmptyLife   The maximum number of seconds an SSO with no 
+                              active sessions will be usable by a request
+                              
+               processExpiresInterval The minimum number of seconds between 
+                              efforts by the valve to find and invalidate 
+                              SSO's that have exceeded their 'maxEmptyLife'. 
+                              Does not imply effort will be spent on such
+                      			cleanup every 'processExpiresInterval'.
+            -->
+            <!--
+            <Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" />
+            -->
+         
+            <!-- Check for unclosed connections and transaction terminated checks
+                 in servlets/jsps.
+                 
+                 Important: The dependency on the CachedConnectionManager
+                 in META-INF/jboss-service.xml must be uncommented, too
+           -->
+
+            <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
+                cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
+                transactionManagerObjectName="jboss:service=TransactionManager" />
+                
+         </Host>
+      </Engine>
+
+   </Service>
+
+</Server>


Property changes on: branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/jbossweb/server.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/mod_cluster/mod-cluster-jboss-beans.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/mod_cluster/mod-cluster-jboss-beans.xml	                        (rev 0)
+++ branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/mod_cluster/mod-cluster-jboss-beans.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Beans that provide JBoss AS-side functionality for mod_cluster. These
+  beans are all "On Demand", i.e. that are not installed unless requested.
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+  
+  <!-- The core HAModClusterService, for use in clustered environments -->
+  <bean name="HAModClusterService" class="org.jboss.modcluster.ha.HAModClusterService" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster",exposedInterface=org.jboss.modcluster.ha.HAModClusterServiceMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="HAPartition"/></parameter>
+      <parameter><inject bean="HAModClusterConfig"/></parameter>
+      <parameter><inject bean="DynamicLoadBalanceFactorProvider"/></parameter>
+      <parameter><bean class="org.jboss.ha.singleton.HASingletonElectionPolicySimple"/></parameter>
+    </constructor>
+  </bean>
+
+  <!-- Configure this node's communication with the load balancer -->
+  <bean name="HAModClusterConfig" class="org.jboss.modcluster.config.ha.HAModClusterConfig" mode="On Demand">
+    
+    <!-- Comma separated list of address:port listing the httpd servers
+         where mod_cluster is running. -->
+    <property name="proxyList">${jboss.modcluster.proxyList:}</property>
+    <!-- URL prefix to send with commands to mod_cluster.  Default is no prefix. -->
+    <!--property name="proxyURL"></property-->
+    
+    <!-- mod_advertise is a small httpd module that advertises the 
+         availability of httpd servers via multicast, allowing 
+         ModClusterService to discover the httpd front-end instead of/in 
+         addition to having them defined in proxyList. -->
+    <!-- Whether to listen for advertise messages -->
+    <property name="advertise">true</property>
+    <!-- Multicast address on which to listen for advertisements -->
+    <property name="advertiseGroupAddress">${jboss.modcluster.advertise.address,jboss.partition.udpGroup:224.0.1.105}</property>
+    <!-- Port to listen to for advertisements -->
+    <property name="advertisePort">${jboss.modcluster.advertise.port:23364}</property>
+    
+    <!-- Comma delimited list of contexts that should *not* be auto-registered with httpd. -->
+    <!-- ROOT indicates the root context. -->
+    <!-- Context may be qualified by host using a colon, e.g. host1:context1 -->
+    <!-- If no host is defined, localhost is assumed. -->
+    <property name="excludedContexts">${jboss.modcluster.excludedContexts:ROOT,admin-console,invoker,jbossws,jmx-console,juddi,web-console}</property>
+    
+    <!-- Security key the proxy is going to send with advertise messages. 
+         Default is none. -->
+    <!--property name="advertiseSecurityKey"></property-->
+    
+    <!-- Whether to use SSL to communicate with mod_cluster. Note this
+         has nothing to do with handling of https requests by JBoss Web -->
+    <property name="ssl">false</property>
+    
+    <!-- Configuration values for the load balancer itself (must be the
+         same on all nodes in the cluster). These will be passed to the 
+         load balancer. -->
+    <property name="stickySession">true</property>
+    <property name="stickySessionForce">false</property>
+    <property name="stickySessionRemove">false</property>
+    <property name="maxAttempts">-1</property>
+    <property name="workerTimeout">-1</property>
+  </bean>
+  
+  <!-- Provides information to ModClusterService informing it how much load 
+       this server should take.  This impl calculates load factor from a 
+       number of metrics and adjusts the value periodically based on runtime
+       conditions, using to the JBossWeb engine's backgroundProcessorDelay. -->
+  <bean name="DynamicLoadBalanceFactorProvider" class="org.jboss.modcluster.load.impl.DynamicLoadBalanceFactorProvider" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=LoadBalanceFactorProvider",exposedInterface=org.jboss.modcluster.load.impl.DynamicLoadBalanceFactorProviderMBean.class)</annotation>
+    <constructor>
+      <parameter>
+        <!-- Define the load metrics to use in your load balance factor calculation here -->
+        <set elementClass="org.jboss.modcluster.load.metric.LoadMetric">
+          <inject bean="BusyConnectorsLoadMetric"/>
+          <inject bean="HeapMemoryUsageLoadMetric"/>
+        </set>
+      </parameter>
+    </constructor>
+    <!-- The number of historical load values used to determine load factor -->
+    <!--property name="history">9</property-->
+    <!-- The exponential decay factor for historical load values -->
+    <!--property name="decayFactor">2</property-->
+  </bean>
+
+  <!-- Default load metrics/sources -->
+  <!-- The JBossWeb connector thread pool usage as a ratio of busy threads to max thread pool size -->
+  <!-- Analogous to method=B in mod_jk -->
+  <bean name="BusyConnectorsLoadMetric" class="org.jboss.modcluster.load.metric.impl.BusyConnectorsLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=BusyConnectorsLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="ThreadPoolLoadMetricSource"/></parameter>
+    </constructor>
+    <!-- The weight determines the significance of this metric with respect
+         to others in the overall load balance factor calculation -->
+    <property name="weight">2</property>
+  </bean>
+  <!-- Queries all JBossWeb ThreadPool mbeans -->
+  <bean name="ThreadPoolLoadMetricSource" class="org.jboss.modcluster.load.metric.impl.ThreadPoolLoadMetricSource" mode="On Demand">
+    <constructor>
+      <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+      <!-- Object name pattern for connector thread pools -->
+      <!--parameter>jboss.web:type=ThreadPool,*</parameter-->
+    </constructor>
+  </bean>
+  
+  <!-- The heap memory usage as a ratio of used heap to max heap size -->
+  <!-- N.B. This load metric is its own source -->
+  <bean name="HeapMemoryUsageLoadMetric" class="org.jboss.modcluster.load.metric.impl.HeapMemoryUsageLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=HeapMemoryUsageLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <!--property name="weight">1</property-->
+  </bean>
+
+
+  <!-- The core ModClusterService, for use in non-clustered environments -->
+  <bean name="ModClusterService" class="org.jboss.modcluster.ModClusterService" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster",exposedInterface=org.jboss.modcluster.ModClusterServiceMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="DynamicLoadBalanceFactorProvider"/></parameter>
+    </constructor>
+    <!-- Comma delimited list of address:port listing the httpd servers
+         where mod_cluster is running. -->
+    <property name="proxyList">${jboss.modcluster.proxyList:}</property>
+    <!-- URL prefix to send with commands to mod_cluster.  Default is no prefix. -->
+    <!--property name="proxyURL"></property-->
+    
+    <!-- mod_advertise is a small httpd module that advertises the 
+         availability of httpd servers via multicast, allowing 
+         ModClusterService to discover the httpd front-end instead of
+         (or in addition to) having them defined in proxyList. -->
+    <!-- Whether to listen for advertise messages -->
+    <property name="advertise">true</property>
+    <!-- Multicast address on which to listen for advertisements -->
+    <property name="advertiseGroupAddress">${jboss.modcluster.advertise.address,jboss.partition.udpGroup:224.0.1.105}</property>
+    <!-- Port to listen to for advertisements -->
+    <property name="advertisePort">${jboss.modcluster.advertise.port:23364}</property>
+    
+    <!-- Comma delimited list of contexts that should *not* be auto-registered with httpd. -->
+    <!-- ROOT indicates the root context. -->
+    <!-- Context may be qualified by host using a colon, e.g. host1:context1 -->
+    <!-- If no host is defined, localhost is assumed. -->
+    <property name="excludedContexts">${jboss.modcluster.excludedContexts:ROOT,admin-console,invoker,jbossws,jmx-console,juddi,web-console}</property>
+    
+    <!-- Security key the proxy is going to send with advertise messages. 
+         Default is none. -->
+    <!--property name="advertiseSecurityKey"></property-->
+    
+    <!-- Whether to use SSL to communicate with mod_cluster. Note this
+         has nothing to do with handling of https requests by JBoss Web -->
+    <property name="ssl">false</property>
+    
+    <!-- Configuration values for the load balancer itself (must be the
+         same on all nodes in the cluster). These will be passed to the 
+         load balancer. -->
+    <property name="stickySession">true</property>
+    <property name="stickySessionForce">false</property>
+    <property name="stickySessionRemove">false</property>
+    <property name="maxAttempts">-1</property>
+    <property name="workerTimeout">-1</property>
+  </bean>
+
+
+  <!-- Alternative load balance factor providers -->
+  
+  <!-- Basic impl that returns a static load balance factor.
+       This would replace the DynamicLoadBalanceFactorProvider
+       used above.
+   -->
+  <bean name="SimpleLoadBalanceFactorProvider" class="org.jboss.modcluster.load.impl.SimpleLoadBalanceFactorProvider" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=LoadBalanceFactorProvider",exposedInterface=org.jboss.modcluster.load.impl.SimpleLoadBalanceFactorProviderMBean.class)</annotation>
+    <property name="loadBalanceFactor">1</property>
+  </bean>
+
+  <!-- 
+       Alternative load metrics, grouped by source. 
+       To use these, inject them into the set passed to the
+       DynamicLoadBalanceFactorProvider bean's constructor above.
+   -->
+  
+  <!-- CPU usage -->
+  <!-- Perhaps the best metric for determining system load - but only available on Java 1.6 or later -->
+  <bean name="AverageSystemLoadMetric" class="org.jboss.modcluster.load.metric.impl.AverageSystemLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=AverageSystemLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="OperatingSystemLoadMetricSource"/></parameter>
+    </constructor>
+  </bean>
+  <!-- The system memory usage as ratio of used memory to total memory size -->
+  <!-- Requires com.sun.management.OperatingSystemMXBean -->
+  <bean name="SystemMemoryUsageLoadMetric" class="org.jboss.modcluster.load.metric.impl.SystemMemoryUsageLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=SystemMemoryUsageLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="OperatingSystemLoadMetricSource"/></parameter>
+    </constructor>
+  </bean>
+  <!-- Uses the platform's OperatingSystemMXBean -->
+  <bean name="OperatingSystemLoadMetricSource" class="org.jboss.modcluster.load.metric.impl.OperatingSystemLoadMetricSource" mode="On Demand">
+  </bean>
+
+
+  <!-- The number of requests/sec processed by the JBossWeb connectors, with respect to the defined capacity -->
+  <!-- Analogous to method=R in mod_jk -->
+  <bean name="RequestCountLoadMetric" class="org.jboss.modcluster.load.metric.impl.RequestCountLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=RequestCountLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource"><inject bean="RequestProcessorLoadMetricSource"/></parameter>
+      <!--parameter>requestCount</parameter-->
+    </constructor>
+    <!-- This metric requires an explicit capacity, e.g. maximum capacity of 1000 requests/sec -->
+    <property name="capacity">1000</property>
+  </bean>
+  <!-- The incoming traffic received by JBossWeb connectors in KB/sec, with respect to the defined capacity -->
+  <!-- Analogous to method=T in mod_jk -->
+  <bean name="ReceiveTrafficLoadMetric" class="org.jboss.modcluster.load.metric.impl.ReceiveTrafficLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ReceiveTrafficLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource"><inject bean="RequestProcessorLoadMetricSource"/></parameter>
+      <!--parameter>bytesReceived</parameter-->
+    </constructor>
+    <!-- This metric requires an explicit capacity, e.g. max capacity of 1024 KB/s -->
+    <property name="capacity">1024</property>
+  </bean>
+  <!-- The outgoing traffic sent by JBossWeb connectors in KB/sec, with respect to the defined capacity -->
+  <bean name="SendTrafficLoadMetric" class="org.jboss.modcluster.load.metric.impl.SendTrafficLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=SendTrafficLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource"><inject bean="RequestProcessorLoadMetricSource"/></parameter>
+      <!--parameter>bytesSent</parameter-->
+    </constructor>
+    <!-- This metric requires an explicit capacity, e.g. max capacity of 512 KB/s -->
+    <property name="capacity">512</property>
+  </bean>
+  <!-- Queries all JBossWeb GlobalRequestProcessor mbeans -->
+  <bean name="RequestProcessorLoadMetricSource" class="org.jboss.modcluster.load.metric.impl.RequestProcessorLoadMetricSource" mode="On Demand">
+    <constructor>
+      <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+      <!-- Object name pattern for request processors -->
+      <!--parameter>jboss.web:type=GlobalRequestProcessor,*</parameter-->
+    </constructor>
+  </bean>
+
+
+  <!-- The number of active sessions, with respect to the defined capacity -->
+  <!-- Analogous to method=S in mod_jk -->
+  <bean name="ActiveSessionsLoadMetric" class="org.jboss.modcluster.load.metric.impl.ActiveSessionsLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ActiveSessionsLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="SessionLoadMetricSource"/></parameter>
+      <!--parameter>activeSessions</parameter-->
+    </constructor>
+    <!-- This metric requires an explicit capacity, e.g. max capacity of 1000 active sessions -->
+    <property name="capacity">1000</property>
+  </bean>
+  <!-- Queries all JBossWeb session manager mbeans -->
+  <bean name="SessionLoadMetricSource" class="org.jboss.modcluster.load.metric.impl.SessionLoadMetricSource" mode="On Demand">
+    <constructor>
+      <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+      <!-- Object name pattern for session managers -->
+      <!--parameter>jboss.web:type=Manager,*</parameter-->
+    </constructor>
+  </bean>
+
+  
+  <!-- Returns the connection pool usage as a ratio of used to max pool size -->
+  <bean name="ConnectionPoolUsageMetric" class="org.jboss.modcluster.load.metric.impl.ConnectionPoolUsageLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ConnectionPoolUsageLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="ConnectionPoolLoadMetricSource"/></parameter>
+      <!--parameter>InUseConnectionCount</parameter-->
+      <!--parameter>MaxSize</parameter-->
+    </constructor>
+  </bean>
+  <!-- Queries all JCA connection pools -->
+  <bean name="ConnectionPoolLoadMetricSource" class="org.jboss.modcluster.load.metric.impl.ConnectionPoolLoadMetricSource" mode="On Demand">
+    <constructor>
+      <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+      <!-- Object name pattern for connector thread pools -->
+      <!--parameter>jboss.jca:service=ManagedConnectionPool,*</parameter-->
+    </constructor>
+  </bean>
+
+  <!-- Generic load metrics/sources -->
+  
+  <!-- Uses the sum of the values of the specified attribute for each
+       mbean matching the query, with respect to a defined capacity. -->
+  <bean name="MBeanAttributeLoadMetric" class="org.jboss.modcluster.load.metric.impl.MBeanAttributeLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=MBeanAttributeLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="MBeanQueryLoadMetricSource"/></parameter>
+      <parameter><!-- mbean attribute --></parameter>
+    </constructor>
+    <property name="capacity">1</property>
+  </bean>
+  <!-- Uses the ratio of the sum of the values of the specified dividend attribute,
+       to the sum of the values of the specified divisor attribute for each mbean
+       matching the query. -->
+  <bean name="MBeanAttributeRatioLoadMetric" class="org.jboss.modcluster.load.metric.impl.MBeanAttributeLoadMetric" mode="On Demand">
+    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=MBeanAttributeLoadMetric",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
+    <constructor>
+      <parameter><inject bean="MBeanQueryLoadMetricSource"/></parameter>
+      <parameter><!-- dividend attribute --></parameter>
+      <parameter><!-- divisor attribute --></parameter>
+    </constructor>
+  </bean>
+  <!-- Queries for mbeans matching the specified pattern -->
+  <bean name="MBeanQueryLoadMetricSource" class="org.jboss.modcluster.load.metric.impl.MBeanQueryLoadMetricSource" mode="On Demand">
+    <constructor>
+      <parameter><!-- ObjectName pattern --></parameter>
+      <parameter><inject bean="JMXKernel" property="mbeanServer"/></parameter>
+    </constructor>
+  </bean>
+
+</deployment>


Property changes on: branches/Branch_No_Multicast/cluster/src/installers/mod_cluster-ec2/resources/mod_cluster/mod-cluster-jboss-beans.xml
___________________________________________________________________
Name: svn:executable
   + *

Deleted: branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-configs-ec.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-configs-ec.xml	2010-06-17 22:42:51 UTC (rev 106142)
+++ branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-configs-ec.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<registry:cache-configs xmlns="urn:jboss:jbosscache-core:config:3.0" 
-                        xmlns:registry="urn:jboss:jbosscache-core:cache-repo:3.0">
-
-    <!-- 
-       JBoss Cache configurations using the standard JBC 3.x config format
-       can be added to this file, and will usable by the AS's CacheManager
-       if the "configResource" property in the jboss-cache-manager-jboss-beans.xml
-       file's "CacheConfigurationRegistry" bean is uncommented. (It is
-       commented out by default.)
-       However, use of the microcontainer config format used in this
-       sar's jboss-cache-manager-jboss-beans.xml file is recommended.
-    -->
-    
-    <!-- An example config; not intended for use; just to illustrate JBC 3's
-         config format and to comply with schema requirement for a cache-config
-         element. Removing this example is recommended if a real config is added.
-    --> 
-    <registry:cache-config name="example">
-
-       <locking isolationLevel="REPEATABLE_READ" lockAcquisitionTimeout="15000" nodeLockingScheme="pessimistic"/>
-       <serialization useRegionBasedMarshalling="true"/>
-       <startup regionsInactiveOnStartup="true"/>
-       <clustering clusterName="${jboss.partition.name:DefaultPartition}-example" mode="r">
-         <stateRetrieval fetchInMemoryState="true" timeout="60000"/>
-         <jgroupsConfig multiplexerStack="${jboss.default.jgroups.stack:tcp}"/>
-         <sync replTimeout="175000"/>
-       </clustering>
-       <eviction wakeUpInterval="5000">
-          <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm">
-             <property name="maxNodes" value="5000" />
-             <property name="timeToLive" value="1000" />
-          </default>
-       </eviction>
-    </registry:cache-config>
-    
-    
-</registry:cache-configs>

Deleted: branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans-ec.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans-ec.xml	2010-06-17 22:42:51 UTC (rev 106142)
+++ branches/Branch_No_Multicast/cluster/src/resources/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans-ec.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -1,1494 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
-   <!-- Factory/registry for JBoss Cache and PojoCache instances used in the AS -->
-   <bean name="CacheManager" class="org.jboss.ha.cachemanager.CacheManager">
-
-      <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.cache:service=CacheManager",                                          exposedInterface=org.jboss.ha.cachemanager.CacheManagerMBean.class, registerDirectly=true)</annotation>
-
-      <!-- This doesn't seem to work, so the service binds itself for now
-      <annotation>@org.jboss.aop.microcontainer.aspects.jndi.JndiBinding(name="java:CacheManager")</annotation>
-      -->
-      <property name="jndiName">java:CacheManager</property>
-      
-      <property name="configurationRegistry"><inject bean="CacheConfigurationRegistry"/></property>
-      <property name="channelFactory"><inject bean="JChannelFactory"/></property>
-      
-      <!-- Aliases for cache names. Allows caches to be shared across 
-           services that may expect different cache config names. -->
-      <property name="configAliases">
-         <map keyClass="java.lang.String" valueClass="java.lang.String">
-            <!-- Use the HAPartition cache for ClusteredSSO caching -->
-            <entry>
-               <key>clustered-sso</key>
-               <value>ha-partition</value>
-            </entry>
-            <!-- Handle the legacy name for the EJB3 SFSB cache -->
-            <entry>
-               <key>jboss.cache:service=EJB3SFSBClusteredCache</key>
-               <value>sfsb-cache</value>
-            </entry>
-            <!-- Handle the legacy name for the EJB3 Entity cache -->
-            <entry>
-               <key>jboss.cache:service=EJB3EntityTreeCache</key>
-               <value>mvcc-shared</value>
-            </entry>
-         </map>
-      </property>
-      
-      <!-- Start these caches as part of the start of this CacheManager
-      <property name="eagerStartCaches">
-         <set>
-            <value>ha-partition</value>
-         </set>
-      </property>
-      -->
-      
-   </bean>
-   
-   <!-- 
-     | Registry of named JBoss Cache configurations. Users of the CacheManager
-     | request a cache with a particular configuration by providing the name
-     | of one of these configurations.
-   -->
-   <bean name="CacheConfigurationRegistry" class="org.jboss.ha.cachemanager.DependencyInjectedConfigurationRegistry">
-   
-      <!-- If users wish to add configs using a more familiar JBC config format
-           they can add them to a cache-configs.xml file specified by this property.
-           However, use of the microcontainer format used below is recommended.
-      <property name="configResource">META-INF/jboss-cache-configs.xml</property>      
-      -->
-      
-      <!-- The configurations. A Map<String name, Configuration config> -->
-      <property name="newConfigurations">
-        <map keyClass="java.lang.String" valueClass="org.jboss.cache.config.Configuration">
-   
-   <!-- The standard configurations follow.  You can add your own and/or edit these. -->   
-      
-   <!-- Standard cache used for web sessions -->
-   <entry><key>standard-session-cache</key>
-   <value>      
-      <bean name="StandardSessionCacheConfig" class="org.jboss.cache.config.Configuration">
-         
-         <!-- Provides batching functionality for caches that don't want to interact with regular JTA Transactions -->
-         <property name="transactionManagerLookupClass">org.jboss.cache.transaction.BatchModeTransactionManagerLookup</property>
-               
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-SessionCache</property>
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-              because we are using asynchronous replication. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <property name="fetchInMemoryState">true</property>
-         
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-         <property name="cacheMode">REPL_ASYNC</property>
-      
-         <!-- Number of milliseconds to wait until all responses for a
-              synchronous call have been received. Make this longer 
-              than lockAcquisitionTimeout.-->
-         <property name="syncReplTimeout">17500</property>
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-         <!-- The max amount of time (in milliseconds) we wait until the
-          state (ie. the contents of the cache) are retrieved from
-          existing members at startup. -->
-         <property name="stateRetrievalTimeout">60000</property>
-      
-         <!-- Not needed for a web session cache that doesn't use FIELD -->
-         <property name="useRegionBasedMarshalling">false</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">false</property>
-         
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-           
-         <property name="exposeManagementStatistics">true</property>
-      
-         <property name="buddyReplicationConfig">
-            <bean class="org.jboss.cache.config.BuddyReplicationConfig">
-               
-               <!--  Just set to true to turn on buddy replication -->
-               <property name="enabled">false</property>
-               
-               <!-- A way to specify a preferred replication group.  We try
-                    and pick a buddy who shares the same pool name (falling 
-                    back to other buddies if not available). -->
-               <property name="buddyPoolName">default</property>
-               
-               <property name="buddyCommunicationTimeout">17500</property>
-               
-               <!-- Do not change these -->
-               <property name="autoDataGravitation">false</property>
-               <property name="dataGravitationRemoveOnFind">true</property>
-               <property name="dataGravitationSearchBackupTrees">true</property>
-               
-               <property name="buddyLocatorConfig">
-                  <bean class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
-                     <!-- The number of backup copies we maintain -->
-                     <property name="numBuddies">1</property>
-                     <!-- Means that each node will *try* to select a buddy on 
-                          a different physical host. If not able to do so 
-                          though, it will fall back to colocated nodes. -->
-                     <property name="ignoreColocatedBuddies">true</property>
-                   </bean>
-               </property>
-            </bean>
-         </property>
-         <property name="cacheLoaderConfig">
-            <bean class="org.jboss.cache.config.CacheLoaderConfig">
-                   <!-- Do not change these -->
-                   <property name="passivation">true</property>
-                   <property name="shared">false</property>
-                   
-                   <property name="individualCacheLoaderConfigs">
-                     <list>
-                        <bean class="org.jboss.cache.loader.FileCacheLoaderConfig">
-                           <!-- Where passivated sessions are stored -->
-                           <property name="location">${jboss.server.data.dir}${/}session</property>
-                           <!-- Do not change these -->
-                           <property name="async">false</property>
-                           <property name="fetchPersistentState">true</property>
-                           <property name="purgeOnStartup">true</property>
-                           <property name="ignoreModifications">false</property>
-                           <property name="checkCharacterPortability">false</property>
-                        </bean>
-                     </list>
-                   </property>
-            </bean>
-         </property>
-      </bean>      
-   </value>
-   </entry>
-   
-   <!-- Appropriate for web sessions with FIELD granularity -->
-   <entry><key>field-granularity-session-cache</key>
-   <value>
-      
-      <bean name="FieldSessionCacheConfig" class="org.jboss.cache.config.Configuration">
-      
-         <!-- Provides batching functionality for caches that don't want to interact with regular JTA Transactions -->
-         <property name="transactionManagerLookupClass">org.jboss.cache.transaction.BatchModeTransactionManagerLookup</property>
-               
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-FieldSessionCache</property>
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-              because we are using asynchronous replication. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <property name="fetchInMemoryState">true</property>      
-      
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-         <property name="cacheMode">REPL_ASYNC</property>
-      
-         <property name="syncReplTimeout">17500</property>
-         <property name="lockAcquisitionTimeout">15000</property>
-         <property name="stateRetrievalTimeout">60000</property>
-          
-         <!-- Field granularity requires region-based marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-         
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-           
-         <property name="exposeManagementStatistics">true</property>
-      
-         <property name="buddyReplicationConfig">
-            <bean class="org.jboss.cache.config.BuddyReplicationConfig">
-               
-               <!--  Just set to true to turn on buddy replication -->
-               <property name="enabled">false</property>
-               <!-- A way to specify a preferred replication group.  We try
-                    and pick a buddy who shares the same pool name (falling 
-                    back to other buddies if not available). -->
-               <property name="buddyPoolName">default</property>
-               <property name="buddyCommunicationTimeout">17500</property>
-
-               <!-- Do not change these -->
-               <property name="autoDataGravitation">false</property>
-               <property name="dataGravitationRemoveOnFind">true</property>
-               <property name="dataGravitationSearchBackupTrees">true</property>
-               
-               <property name="buddyLocatorConfig">
-                  <bean class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
-                     <!-- The number of backup nodes we maintain -->
-                     <property name="numBuddies">1</property>
-                     <!-- Means that each node will *try* to select a buddy on 
-                          a different physical host. If not able to do so 
-                          though, it will fall back to colocated nodes. -->
-                     <property name="ignoreColocatedBuddies">true</property>
-                   </bean>
-               </property>
-            </bean>
-         </property>
-         <property name="cacheLoaderConfig">
-            <bean class="org.jboss.cache.config.CacheLoaderConfig">
-                   <!-- Do not change these -->
-                   <property name="passivation">true</property>
-                   <property name="shared">false</property>
-                   
-                   <property name="individualCacheLoaderConfigs">
-                     <list>
-                        <bean class="org.jboss.cache.loader.FileCacheLoaderConfig">
-                           <!-- Where passivated sessions are stored -->
-                           <property name="location">${jboss.server.data.dir}${/}field-session</property>
-                           <!-- Do not change these -->
-                           <property name="async">false</property>
-                           <property name="fetchPersistentState">true</property>
-                           <property name="purgeOnStartup">true</property>
-                           <property name="ignoreModifications">false</property>
-                           <property name="checkCharacterPortability">false</property>
-                        </bean>
-                     </list>
-                   </property>
-            </bean>
-         </property>
-
-      </bean>
-   </value>
-   </entry>  
-      
-   <!-- Standard cache used for EJB3 SFSB caching -->
-   <entry><key>sfsb-cache</key>
-   <value>      
-      <bean name="StandardSFSBCacheConfig" class="org.jboss.cache.config.Configuration">
-
-         <!--  No transaction manager lookup -->
-               
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-SFSBCache</property>
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-              because we are using asynchronous replication. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <property name="fetchInMemoryState">true</property>
-         
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-         <property name="cacheMode">REPL_ASYNC</property>
-      
-         <!-- Number of milliseconds to wait until all responses for a
-              synchronous call have been received. Make this longer 
-              than lockAcquisitionTimeout.-->
-         <property name="syncReplTimeout">17500</property>
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-         <!-- The max amount of time (in milliseconds) we wait until the
-          state (ie. the contents of the cache) are retrieved from
-          existing members at startup. -->
-         <property name="stateRetrievalTimeout">60000</property>
-      
-         <!--
-          SFSBs use region-based marshalling to provide for partial state
-          transfer during deployment/undeployment.
-         -->
-         <property name="useRegionBasedMarshalling">false</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">false</property>
-         
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-           
-         <property name="exposeManagementStatistics">true</property>
-      
-         <property name="buddyReplicationConfig">
-            <bean class="org.jboss.cache.config.BuddyReplicationConfig">
-               
-               <!--  Just set to true to turn on buddy replication -->
-               <property name="enabled">false</property>
-               
-               <!-- A way to specify a preferred replication group.  We try
-                    and pick a buddy who shares the same pool name (falling 
-                    back to other buddies if not available). -->
-               <property name="buddyPoolName">default</property>
-               
-               <property name="buddyCommunicationTimeout">17500</property>
-               
-               <!-- Do not change these -->
-               <property name="autoDataGravitation">false</property>
-               <property name="dataGravitationRemoveOnFind">true</property>
-               <property name="dataGravitationSearchBackupTrees">true</property>
-               
-               <property name="buddyLocatorConfig">
-                  <bean class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
-                     <!-- The number of backup nodes we maintain -->
-                     <property name="numBuddies">1</property>
-                     <!-- Means that each node will *try* to select a buddy on 
-                          a different physical host. If not able to do so 
-                          though, it will fall back to colocated nodes. -->
-                     <property name="ignoreColocatedBuddies">true</property>
-                   </bean>
-               </property>
-            </bean>
-         </property>
-         <property name="cacheLoaderConfig">
-            <bean class="org.jboss.cache.config.CacheLoaderConfig">
-                   <!-- Do not change these -->
-                   <property name="passivation">true</property>
-                   <property name="shared">false</property>
-                   
-                   <property name="individualCacheLoaderConfigs">
-                     <list>
-                        <bean class="org.jboss.cache.loader.FileCacheLoaderConfig">
-                           <!-- Where passivated sessions are stored -->
-                           <property name="location">${jboss.server.data.dir}${/}sfsb</property>
-                           <!-- Do not change these -->
-                           <property name="async">false</property>
-                           <property name="fetchPersistentState">true</property>
-                           <property name="purgeOnStartup">true</property>
-                           <property name="ignoreModifications">false</property>
-                           <property name="checkCharacterPortability">false</property>
-                        </bean>
-                     </list>
-                   </property>
-            </bean>
-         </property>
-        
-         <!-- EJBs use JBoss Cache eviction -->
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                     </property>
-                  </bean>
-               </property>
-               <!-- EJB3 integration code will programatically create
-                    other regions as beans are deployed -->
-            </bean>
-         </property>
-      </bean>      
-   </value>
-   </entry>
-   
-   <!-- 
-      Appropriate for the HAPartition-based services, e.g. DistributedState, 
-      HA-JNDI. Also valid for use by the JBossWeb ClusteredSingleSignOn valve.
-    -->
-   <entry><key>ha-partition</key>
-   <value>
-      
-      <bean name="HAPartitionCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Provides batching functionality for caches that don't want to interact with regular JTA Transactions -->
-         <property name="transactionManagerLookupClass">org.jboss.cache.transaction.BatchModeTransactionManagerLookup</property>
-               
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-HAPartitionCache</property>
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <property name="fetchInMemoryState">true</property>          
-      
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-         <property name="cacheModeString">REPL_SYNC</property>
-      
-         <property name="syncReplTimeout">17500</property>
-         <property name="lockAcquisitionTimeout">15000</property>
-         <property name="stateRetrievalTimeout">60000</property>
-      
-         <property name="useRegionBasedMarshalling">false</property>
-         <property name="inactiveOnStartup">false</property>
-         
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-           
-         <property name="exposeManagementStatistics">true</property>
-      </bean>
-   </value>
-   </entry>
-
-    <!-- 
-      Following are JBoss Cache configurations suitable for different 
-      Hibernate 2nd Level Cache uses (e.g. entities vs. queries).
-      
-      In all cases, TransactionManager configuration not required.
-      Hibernate will plug in its own transaction manager integration. 
-    -->
-    
-   <!-- A config appropriate for entity/collection caching that uses MVCC locking -->
-   <entry><key>mvcc-entity</key>
-   <value>      
-      <bean name="MVCCEntityCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">MVCC</property>
-         <!-- READ_COMMITTED is as strong as necessary for most 
-              2nd Level Cache use cases. -->
-         <property name="isolationLevel">READ_COMMITTED</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Mode of communication with peer caches.        
-              INVALIDATION_SYNC is highly recommended as the mode for use
-              with entity and collection caches.     -->
-         <property name="cacheMode">INVALIDATION_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-entity</property>        
-         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
-              slightly better (no JGroups FC) but we stick with udp to
-              help ensure this cache and others like timestamps-cache
-              that require FC can use the same underlying JGroups resources. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Whether or not to fetch state on joining a cluster. -->
-         <property name="fetchInMemoryState">false</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-    
-   <!-- A config appropriate for entity/collection caching that uses optimistic locking. -->
-   <entry><key>optimistic-entity</key>
-   <value>      
-      <bean name="OptimisticEntityCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">OPTIMISTIC</property>
-
-         <!-- Mode of communication with peer caches.        
-              INVALIDATION_SYNC is highly recommended as the mode for use
-              with entity and collection caches.     -->
-         <property name="cacheMode">INVALIDATION_SYNC</property> 
-         <property name="useLockStriping">false</property>
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-opt-entity</property>        
-         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
-              slightly better (no JGroups FC) but we stick with udp to
-              help ensure this cache and others like timestamps-cache
-              that require FC can use the same underlying JGroups resources. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Whether or not to fetch state on joining a cluster. -->
-         <property name="fetchInMemoryState">false</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-    
-   <!-- A config appropriate for entity/collection caching that uses pessimistic locking -->
-   <entry><key>pessimistic-entity</key>
-   <value>      
-      <bean name="PessimisticEntityCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <!-- READ_COMMITTED is as strong as necessary for most 
-              2nd Level Cache use cases. -->
-         <property name="isolationLevel">READ_COMMITTED</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Mode of communication with peer caches.        
-              INVALIDATION_SYNC is highly recommended as the mode for use
-              with entity and collection caches.     -->
-         <property name="cacheMode">INVALIDATION_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-entity</property>        
-         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
-              slightly better (no JGroups FC) but we stick with udp to
-              help ensure this cache and others like timestamps-cache
-              that require FC can use the same underlying JGroups resources. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Whether or not to fetch state on joining a cluster. -->
-         <property name="fetchInMemoryState">false</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-    
-   <!-- Same as "mvcc-entity" but here we use REPEATABLE_READ
-        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
-        application evicts/clears entities from the Hibernate Session and 
-        then expects to repeatably re-read them in the same transaction.
-        Otherwise, the Session's internal cache provides a repeatable-read 
-        semantic. Before choosing this config, carefully read the docs
-        and make sure you really need REPEATABLE_READ. -->
-   <entry><key>mvcc-entity-repeatable</key>
-   <value>      
-      <bean name="MVCCEntityRepeatableCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">MVCC</property>
-         <!-- Here we  use REPEATABLE_READ. -->
-         <property name="isolationLevel">READ_COMMITTED</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Mode of communication with peer caches.        
-              INVALIDATION_SYNC is highly recommended as the mode for use
-              with entity and collection caches.     -->
-         <property name="cacheMode">INVALIDATION_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-entity-rr</property>        
-         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
-              slightly better (no JGroups FC) but we stick with udp to
-              help ensure this cache and others like timestamps-cache
-              that require FC can use the same underlying JGroups resources. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Whether or not to fetch state on joining a cluster. -->
-         <property name="fetchInMemoryState">false</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-   
-   <!-- Same as "pessimistic-entity" but here we use REPEATABLE_READ
-        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
-        application evicts/clears entities from the Hibernate Session and 
-        then expects to repeatably re-read them in the same transaction.
-        Otherwise, the Session's internal cache provides a repeatable-read 
-        semantic. Before choosing this config, carefully read the docs
-        and make sure you really need REPEATABLE_READ.
-   -->
-   <entry><key>pessimistic-entity-repeatable</key>
-   <value>      
-      <bean name="PessimisticEntityRepeatableCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Mode of communication with peer caches.        
-              INVALIDATION_SYNC is highly recommended as the mode for use
-              with entity and collection caches.     -->
-         <property name="cacheMode">INVALIDATION_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-entity-rr</property>        
-         <!-- Use a UDP (multicast) based stack. A udp-sync stack might be
-              slightly better (no JGroups FC) but we stick with udp to
-              help ensure this cache and others like timestamps-cache
-              that require FC can use the same underlying JGroups resources. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Whether or not to fetch state on joining a cluster. -->
-         <property name="fetchInMemoryState">false</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-                  
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-
-   <!-- A config appropriate for query caching. Does not replicate
-        queries. DO NOT STORE TIMESTAMPS IN THIS CACHE. -->
-   <entry><key>local-query</key>
-   <value>      
-      <bean name="LocalQueryCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">OPTIMISTIC</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- LOCAL means don't communicate with other caches.  -->
-         <property name="cacheMode">LOCAL</property> 
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-
-   <!-- A query cache that replicates querie results. Replication is asynchronous.
-         DO NOT STORE TIMESTAMPS IN THIS CACHE as no initial state transfer
-         is performed. -->
-   <entry><key>replicated-query</key>
-   <value>      
-      <bean name="ReplicatedQueryCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">OPTIMISTIC</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Mode of communication with peer caches.        
-              REPL_ASYNC means replicate but sender does not block waiting for
-              peers to acknowledge applying the change. Valid for queries as
-              the timestamp cache mechanism will allow Hibernate to discard
-              out-of-date queries.  -->
-         <property name="cacheMode">REPL_ASYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-query</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Whether or not to fetch state on joining a cluster. -->
-         <property name="fetchInMemoryState">false</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>         
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-
-   <!-- Optimized for timestamp caching. A clustered timestamp cache
-        is required if query caching is used, even if the query cache
-        itself is configured with CacheMode=LOCAL.
-   -->   
-   <entry><key>timestamps-cache</key>
-   <value>      
-      <bean name="TimestampsCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">MVCC</property>
-         <!-- READ_COMMITTED is as strong as necessary -->
-         <property name="isolationLevel">READ_COMMITTED</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Cannot be INVALIDATION. ASYNC for improved performance. -->
-         <property name="cacheMode">REPL_ASYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-timestamps</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Used for timestamps, so must fetch state. -->
-         <property name="fetchInMemoryState">true</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>
-         
-         <!-- We should never evict timestamps, so eviction is disabled -->
-
-      </bean>
-   </value>
-   </entry>   
-   
-   <!-- A config appropriate for a cache that's shared for
-        entity, collection, query and timestamp caching. Not an advised
-        configuration, since it requires cache mode REPL_SYNC, which is the 
-        least efficient mode. Also requires a full state transfer at startup,
-        which can be expensive. Uses mvcc locking. -->
-   <entry><key>mvcc-shared</key>
-   <value>      
-      <bean name="MVCCSharedCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">MVCC</property>
-         <!-- READ_COMMITTED is as strong as necessary for most 
-              2nd Level Cache use cases. -->
-         <property name="isolationLevel">READ_COMMITTED</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Must use REPL since used for timestamp caching. 
-              Must use SYNC to maintain cache coherency for entities. -->
-         <property name="cacheMode">REPL_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-shared</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Used for timestamps, so must fetch state. -->
-         <property name="fetchInMemoryState">true</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>        
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-   
-   <!-- A config appropriate for a cache that's shared for
-        entity, collection, query and timestamp caching. Not an advised
-        configuration, since it requires cache mode REPL_SYNC, which is the 
-        least efficient mode. Also requires a full state transfer at startup,
-        which can be expensive. Uses optimistic locking -->
-   <entry><key>optimistic-shared</key>
-   <value>      
-      <bean name="OptimisticSharedCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">OPTIMISTIC</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Must use REPL since used for timestamp caching. 
-              Must use SYNC to maintain cache coherency for entities. -->
-         <property name="cacheMode">REPL_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-opt-shared</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Used for timestamps, so must fetch state. -->
-         <property name="fetchInMemoryState">true</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>        
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>  
-   
-   <!-- A config appropriate for a cache that's shared for
-        entity, collection, query and timestamp caching. Not an advised
-        configuration, since it requires cache mode REPL_SYNC, which is the 
-        least efficient mode. Also requires a full state transfer at startup,
-        which can be expensive. Uses pessmistic locking. -->
-   <entry><key>pessimistic-shared</key>
-   <value>      
-      <bean name="PessimisticSharedCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <!-- READ_COMMITTED is as strong as necessary for most 
-              2nd Level Cache use cases. -->
-         <property name="isolationLevel">READ_COMMITTED</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Must use REPL since used for timestamp caching. 
-              Must use SYNC to maintain cache coherency for entities. -->
-         <property name="cacheMode">REPL_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-shared</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Used for timestamps, so must fetch state. -->
-         <property name="fetchInMemoryState">true</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>        
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>  
-   
-   <!-- Same as "mvcc-shared" but here we use REPEATABLE_READ
-        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
-        application evicts/clears entities from the Hibernate Session and 
-        then expects to repeatably re-read them in the same transaction.
-        Otherwise, the Session's internal cache provides a repeatable-read 
-        semantic. Before choosing this config, carefully read the docs
-        and make sure you really need REPEATABLE_READ.  -->
-   <entry><key>mvcc-shared-repeatable</key>
-   <value>      
-      <bean name="MVCCSharedRepeatableCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">MVCC</property>
-         <!-- READ_COMMITTED is as strong as necessary for most 
-              2nd Level Cache use cases. -->
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Must use REPL since used for timestamp caching. 
-              Must use SYNC to maintain cache coherency for entities. -->
-         <property name="cacheMode">REPL_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-mvcc-shared-rr</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Used for timestamps, so must fetch state. -->
-         <property name="fetchInMemoryState">true</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>        
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-   
-   <!-- Same as "pessimistic-shared" but here we use REPEATABLE_READ
-        instead of READ_COMMITTED. REPEATABLE_READ is only useful if the 
-        application evicts/clears entities from the Hibernate Session and 
-        then expects to repeatably re-read them in the same transaction.
-        Otherwise, the Session's internal cache provides a repeatable-read 
-        semantic. Before choosing this config, carefully read the docs
-        and make sure you really need REPEATABLE_READ. -->
-   <entry><key>pessimistic-shared-repeatable</key>
-   <value>      
-      <bean name="PessimisticSharedRepeatableCache" class="org.jboss.cache.config.Configuration">
-
-         <!-- Node locking scheme -->
-         <property name="nodeLockingScheme">PESSIMISTIC</property>
-         <property name="isolationLevel">REPEATABLE_READ</property>
-         <property name="useLockStriping">false</property>
-
-         <!-- Must use REPL since used for timestamp caching. 
-              Must use SYNC to maintain cache coherency for entities. -->
-         <property name="cacheMode">REPL_SYNC</property> 
-
-         <!-- Name of cluster. Needs to be the same for all members -->
-         <property name="clusterName">${jboss.partition.name:DefaultPartition}-pess-shared-rr</property>        
-         <!-- Use a UDP (multicast) based stack. Need JGroups flow control (FC)
-             because timestamp communication will not require a synchronous response. -->
-         <property name="multiplexerStack">${jboss.default.jgroups.stack:tcp}</property>
-         <!-- Used for timestamps, so must fetch state. -->
-         <property name="fetchInMemoryState">true</property>
-
-         <!-- The max amount of time (in milliseconds) we wait until the
-           state (ie. the contents of the cache) are retrieved from
-           existing members at startup. Ignored if FetchInMemoryState=false. -->
-         <property name="stateRetrievalTimeout">60000</property>
-
-         <!-- Number of milliseconds to wait until all responses for a
-               synchronous call have been received. -->
-         <property name="syncReplTimeout">17500</property>
-
-         <!-- Max number of milliseconds to wait for a lock acquisition -->
-         <property name="lockAcquisitionTimeout">15000</property>
-
-         <!-- Hibernate 2LC can replicate custom types, so we use marshalling -->
-         <property name="useRegionBasedMarshalling">true</property>
-         <!-- Must match the value of "useRegionBasedMarshalling" -->
-         <property name="inactiveOnStartup">true</property>
-
-         <!-- Disable asynchronous RPC marshalling/sending -->
-         <property name="serializationExecutorPoolSize">0</property>        
-         <!-- We have no asynchronous notification listeners -->
-         <property name="listenerAsyncPoolSize">0</property>        
-         
-         <property name="evictionConfig">
-             <bean class="org.jboss.cache.config.EvictionConfig">
-               <property name="wakeupInterval">5000</property>
-               <!--  Overall default -->
-               <property name="defaultEvictionRegionConfig">
-                  <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                     <property name="regionName">/</property>
-                     <property name="evictionAlgorithmConfig">
-                        <bean class="org.jboss.cache.eviction.LRUAlgorithmConfig">
-                           <!-- Evict LRU node once we have more than this number of nodes -->
-                           <property name="maxNodes">10000</property>
-                           <!-- And, evict any node that hasn't been accessed in this many seconds -->
-                           <property name="timeToLiveSeconds">1000</property>
-                           <!-- Don't evict a node that's been accessed within this many seconds. 
-                                Set this to a value greater than your max expected transaction length. -->
-                           <property name="minTimeToLiveSeconds">120</property>
-                        </bean>
-                     </property>
-                  </bean>
-               </property>
-               <property name="evictionRegionConfigs">
-                  <list>
-                     <!--  Don't ever evict modification timestamps -->
-                     <bean class="org.jboss.cache.config.EvictionRegionConfig">
-                        <property name="regionName">/TS</property>
-                        <property name="evictionAlgorithmConfig">
-                           <bean class="org.jboss.cache.eviction.NullEvictionAlgorithmConfig"/>
-                        </property>
-                     </bean>
-                  </list>
-               </property>
-            </bean>
-         </property>
-      </bean>
-   </value>
-   </entry>
-       
-         </map>
-      </property>
-   </bean>
-    
-</deployment>
\ No newline at end of file

Deleted: branches/Branch_No_Multicast/cluster/src/resources/jgroups/jgroups-channelfactory-stacks-ec.xml
===================================================================
--- branches/Branch_No_Multicast/cluster/src/resources/jgroups/jgroups-channelfactory-stacks-ec.xml	2010-06-17 22:42:51 UTC (rev 106142)
+++ branches/Branch_No_Multicast/cluster/src/resources/jgroups/jgroups-channelfactory-stacks-ec.xml	2010-06-17 22:51:00 UTC (rev 106143)
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE protocol_stacks [
-   <!ENTITY shared-tcp '
-		<!--  TCP transport config meant to be shared between different channels
-		      with different requirements. Message bundling is disabled in this 
-		      general-purpose config as it can add latency to synchronous RPCs. -->
-		
-            <TCP
-                 singleton_name="tcp"
-                 start_port="${jboss.jgroups.tcp.tcp_port:7600}"
-                 tcp_nodelay="true"
-                 loopback="true"
-                 recv_buf_size="20000000"
-                 send_buf_size="640000"
-                 discard_incompatible_packets="true"
-                 max_bundle_size="64000"
-                 max_bundle_timeout="30"
-                 use_incoming_packet_handler="true"
-                 enable_bundling="false"
-                 use_send_queues="false"
-                 sock_conn_timeout="300"
-                 skip_suspected_members="true"
-                 timer.num_threads="12"
-                 enable_diagnostics="${jboss.jgroups.enable_diagnostics:true}"
-                 diagnostics_addr="${jboss.jgroups.diagnostics_addr:224.0.75.75}"
-                 diagnostics_port="${jboss.jgroups.diagnostics_port:7500}"
-   
-                 thread_pool.enabled="true"
-                 thread_pool.min_threads="20"
-                 thread_pool.max_threads="200"
-                 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="20"
-                 oob_thread_pool.max_threads="200"
-                 oob_thread_pool.keep_alive_time="1000"
-                 oob_thread_pool.queue_enabled="false"
-                 oob_thread_pool.rejection_policy="discard"/>
-		'>
-]>
-
-
-<!--
-  Standard JGroups protocol stacks definitions, used by the JChannelFactory bean.
-  
-  Author: Bela Ban, Brian Stansberry
-  Version: $Id:jgroups-channelfactory-stacks.xml 71313 2008-03-26 19:46:59Z bstansberry at jboss.com $
--->
-<protocol_stacks>
-
-    <stack name="tcp"
-           description="TCP based stack, with flow control and message bundling. 
-                        TCP stacks are usually used when IP multicasting cannot 
-                        be used in a network, e.g. because it is disabled (e.g. 
-                        routers discard multicast)">
-        <config>
-            &shared-tcp;
-            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
-            <MERGE2 max_interval="100000" min_interval="20000"/>
-            <FD_SOCK start_port="${jboss.jgroups.tcp.fd_sock_port:57600}"/>
-            <FD timeout="6000" max_tries="5" shun="true"/>
-            <VERIFY_SUSPECT timeout="1500"/>
-            <BARRIER/>
-            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
-                           retransmit_timeout="300,600,1200,2400,4800"
-                           discard_delivered_msgs="true"/>
-            <UNICAST timeout="300,600,1200,2400,3600"/>
-            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
-                           max_bytes="400000"/>            
-            <VIEW_SYNC avg_send_interval="10000"/>               
-            <pbcast.GMS print_local_addr="true" join_timeout="3000"
-                        shun="true"
-                        view_bundling="true"
-                        view_ack_collection_timeout="5000"
-                        resume_task_timeout="7500"/>
-            <FC max_credits="2000000" min_threshold="0.10" 
-                ignore_synchronous_response="true"/>
-            <FRAG2 frag_size="60000"/>
-            <!-- pbcast.STREAMING_STATE_TRANSFER/ -->
-            <pbcast.STATE_TRANSFER/>
-            <pbcast.FLUSH timeout="0" start_flush_timeout="10000"/>
-        </config>
-    </stack>
-
-
-    <stack name="tcp-sync"
-           description="TCP based stack, without flow control and without 
-                        message bundling. TCP stacks are usually used when IP 
-                        multicasting cannot be used in a network (e.g.routers 
-                        discard multicast). This configuration should be used 
-                        instead of 'tcp' above when (1) synchronous calls are 
-                        used and (2) the message volume (rate and size) is not 
-                        that large.">
-        <config>
-            <TCP
-                 singleton_name="tcp_sync"
-                 start_port="${jboss.jgroups.tcp_sync.tcp_port:7650}"
-                 tcp_nodelay="true"
-                 loopback="true"
-                 recv_buf_size="20000000"
-                 send_buf_size="640000"
-                 discard_incompatible_packets="true"
-                 enable_bundling="false"
-                 use_send_queues="false"
-                 sock_conn_timeout="300"
-                 skip_suspected_members="true"
-                 enable_diagnostics="${jboss.jgroups.enable_diagnostics:true}"
-                 diagnostics_addr="${jboss.jgroups.diagnostics_addr:224.0.75.75}"
-                 diagnostics_port="${jboss.jgroups.diagnostics_port:7500}"
-                 
-                 thread_pool.enabled="true"
-                 thread_pool.min_threads="8"
-                 thread_pool.max_threads="200"
-                 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="20"
-                 oob_thread_pool.max_threads="200"
-                 oob_thread_pool.keep_alive_time="1000"
-                 oob_thread_pool.queue_enabled="false"
-                 oob_thread_pool.rejection_policy="discard"/>
-            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
-            <MERGE2 max_interval="100000" min_interval="20000"/>
-            <FD_SOCK start_port="${jboss.jgroups.tcp_sync.fd_sock_port:57650}"/>
-            <FD timeout="6000" max_tries="5" shun="true"/>
-            <VERIFY_SUSPECT timeout="1500"/>
-            <BARRIER/>
-            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
-                           retransmit_timeout="300,600,1200,2400,4800"
-                           discard_delivered_msgs="true"/>
-            <UNICAST timeout="300,600,1200,2400,3600"/>
-            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
-                           max_bytes="400000"/>            
-            <VIEW_SYNC avg_send_interval="10000"/>
-            <pbcast.GMS print_local_addr="true" join_timeout="3000"
-                        shun="true"
-                        view_bundling="true"
-                        view_ack_collection_timeout="5000"
-                        resume_task_timeout="7500"/>
-            <!-- pbcast.STREAMING_STATE_TRANSFER/ -->
-            <pbcast.STATE_TRANSFER/>
-            <pbcast.FLUSH timeout="0" start_flush_timeout="10000"/>
-        </config>
-    </stack>
-    
-    <stack name="jbm-control"
-           description="Stack optimized for the JBoss Messaging Control Channel">
-       <config>
-            <!-- By default we use the same TCP transport protocol config as is 
-                 used for the default 'tcp' stack defined above. This allows
-                 the JBoss Messaging Control Channel to use the same sockets,
-                 network buffers and thread pools as are used by the other
-                 standard JBoss AS clustered services.
-                
-                 The TCP config is included via an XML entity to ensure that
-                 it remains consistent between this stack and the 'tcp' 
-                 stack above.
-            -->
-            &shared-tcp;
-            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
-            <MERGE2 max_interval="100000"
-                    min_interval="20000"/>
-            <FD_SOCK start_port="${jboss.jgroups.jbm_control.fd_sock_port:53200}"/>
-            <FD timeout="6000" 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,2400,3600"/>
-            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
-                           max_bytes="400000"/>
-            <VIEW_SYNC avg_send_interval="10000"/>
-            <pbcast.GMS print_local_addr="true" join_timeout="3000"
-                shun="true"
-                view_bundling="true"/>
-            <FC max_credits="500000" min_threshold="0.20" 
-                ignore_synchronous_response="true"/>
-            <FRAG2 frag_size="60000"  />
-            <pbcast.STATE_TRANSFER/>
-            <pbcast.FLUSH timeout="20000" start_flush_timeout="10000"/>
-        </config>
-    </stack>
-    
-    
-    <stack name="jbm-data"
-           description="Stack optimized for the JBoss Messaging Data Channel">
-        <config>
-            <TCP singleton_name="jbm-data"
-                 start_port="${jboss.messaging.datachanneltcpport,jboss.jgroups.jbm_data.tcp_port:7900}"
-                 loopback="true"
-                 recv_buf_size="20000000"
-                 send_buf_size="640000"
-                 discard_incompatible_packets="true"
-                 enable_bundling="false"
-                 use_send_queues="false"
-                 sock_conn_timeout="300"
-                 skip_suspected_members="true"
-                 enable_diagnostics="${jboss.jgroups.enable_diagnostics:true}"
-                 diagnostics_addr="${jboss.jgroups.diagnostics_addr:224.0.75.75}"
-                 diagnostics_port="${jboss.jgroups.diagnostics_port:7500}"
-                 
-                 thread_pool.enabled="true"
-                 thread_pool.min_threads="8"
-                 thread_pool.max_threads="200"
-                 thread_pool.keep_alive_time="5000"
-                 thread_pool.queue_enabled="true" 
-                 thread_pool.queue_max_size="500"
-                 thread_pool.rejection_policy="discard"
-                 
-                 oob_thread_pool.enabled="true"
-                 oob_thread_pool.min_threads="1"
-                 oob_thread_pool.max_threads="100" 
-                 oob_thread_pool.keep_alive_time="5000"
-                 oob_thread_pool.queue_enabled="false"
-                 oob_thread_pool.rejection_policy="discard"/>
-            <S3_PING access_key="${jboss.jgroups.s3_ping.access_key:}" secret_access_key="${jboss.jgroups.s3_ping.secret_access_key:}" location="${jboss.jgroups.s3_ping.bucket:}" />
-            <MERGE2 max_interval="100000" min_interval="20000"/>
-            <FD_SOCK start_port="${jboss.jgroups.jbm_data.fd_sock_port:57900}"/>
-            <FD timeout="6000" max_tries="5" shun="true"/>
-            <VERIFY_SUSPECT timeout="1500"/>
-            <BARRIER/>
-            <pbcast.NAKACK use_mcast_xmit="false" gc_lag="0"
-                           retransmit_timeout="300,600,1200,2400,4800"
-                           discard_delivered_msgs="true"/>
-            <UNICAST timeout="300,600,1200,2400,3600"/>
-            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
-                           max_bytes="400000"/>
-            <VIEW_SYNC avg_send_interval="10000"/>
-
-            <pbcast.GMS print_local_addr="true" join_timeout="3000"
-                shun="true" view_bundling="true"/>
-        </config>
-    </stack>
-
-</protocol_stacks>
-
-



More information about the jboss-cvs-commits mailing list