1 Reply Latest reply on Feb 14, 2011 9:29 AM by Jonas Heineson

    JBoss Cache and HAPartition, different clusters

    Jonas Heineson Newbie

      Hi,

       

      In an environment we have four JBoss servers (4.2.3.GA) A,B,C,D split into two clusters for failover (A,B are in one cluster and C,D in another). Now we want to start using JBoss Cache (1.4.1.GA) as a distributed POJO cache that all four servers should share. That is, we want the HAPartition handling failover and such still be configured as running in two separate clusters while the cache we want to be used on all four servers.

       

      I have a problem configuring this (if it is even possible?), and can only get the caches to see each other if they are in the same HAPartition cluster as well.

       

      Configuration HAPartition (cluster-service.xml):

       

      <?xml version="1.0" encoding="UTF-8"?>

       

      <server>

       

         <!-- ==================================================================== -->

         <!-- Cluster Partition: defines cluster                                   -->

         <!-- ==================================================================== -->

       

         <mbean code="org.jboss.ha.framework.server.ClusterPartition"

            name="jboss:service=${jboss.partition.name:DefaultPartition}">

       

            <!-- Name of the partition being built -->

            <attribute name="PartitionName">${jboss.partition.name:DefaultPartition}</attribute>

       

            <!-- The address used to determine the node name -->

            <attribute name="NodeAddress">${jboss.bind.address}</attribute>

       

            <!-- Determine if deadlock detection is enabled -->

            <attribute name="DeadlockDetection">False</attribute>

       

            <!-- Max time (in ms) to wait for state transfer to complete. Increase for large states -->

            <attribute name="StateTransferTimeout">30000</attribute>

       

            <!-- The JGroups protocol configuration -->

            <attribute name="PartitionConfig">

               <!--

               The default UDP stack:

               - If you have a multihomed machine, set the UDP protocol's bind_addr attribute to the

               appropriate NIC IP address, e.g bind_addr="192.168.0.2".

               - On Windows machines, because of the media sense feature being broken with multicast

               (even after disabling media sense) set the UDP protocol's loopback attribute to true

               -->

               <Config>

                  <UDP mcast_addr="${jboss.partition.udpGroup:228.1.2.5}" mcast_port="45588"

                     ip_ttl="8" ip_mcast="true"

                     mcast_send_buf_size="800000" mcast_recv_buf_size="150000"

                     ucast_send_buf_size="800000" ucast_recv_buf_size="150000"

                     loopback="true"/>

                  <PING timeout="2000" num_initial_members="3"

                     up_thread="true" down_thread="true"/>

                  <MERGE2 min_interval="10000" max_interval="20000"/>

                  <FD shun="true" up_thread="true" down_thread="true"

                     timeout="2500" max_tries="5"/>

                  <VERIFY_SUSPECT timeout="3000" num_msgs="3"

                     up_thread="true" down_thread="true"/>

                  <pbcast.NAKACK gc_lag="50" retransmit_timeout="300,600,1200,2400,4800"

                     max_xmit_size="8192"

                     up_thread="true" down_thread="true"/>

                  <UNICAST timeout="300,600,1200,2400,4800" window_size="100" min_threshold="10"

                     down_thread="true"/>

                  <pbcast.STABLE desired_avg_gossip="20000"

                     up_thread="true" down_thread="true"/>

                  <FRAG frag_size="8192"

                     down_thread="true" up_thread="true"/>

                  <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"

                     shun="true" print_local_addr="true"/>

                  <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>

               </Config>

       

            </attribute>

            <depends>jboss:service=Naming</depends>

         </mbean>

       


         <!-- ==================================================================== -->

         <!-- HA JNDI                                                              -->

         <!-- ==================================================================== -->

       

         <mbean code="org.jboss.ha.jndi.HANamingService"

            name="jboss:service=HAJNDI">

            <!-- We now inject the partition into the HAJNDI service instead

                 of requiring that the partition name be passed -->

            <depends optional-attribute-name="ClusterPartition"

               proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>

            <!-- Bind address of bootstrap and HA-JNDI RMI endpoints -->

            <attribute name="BindAddress">${jboss.bind.address}</attribute>

            <!-- Port on which the HA-JNDI stub is made available -->

            <attribute name="Port">1100</attribute>

            <!-- RmiPort to be used by the HA-JNDI service once bound. 0 => auto. -->

            <attribute name="RmiPort">1101</attribute>

            <!-- Accept backlog of the bootstrap socket -->

            <attribute name="Backlog">50</attribute>

            <!-- The thread pool service used to control the bootstrap and

            auto discovery lookups -->

            <depends optional-attribute-name="LookupPool"

               proxy-type="attribute">jboss.system:service=ThreadPool</depends>

       

            <!-- A flag to disable the auto discovery via multicast -->

            <attribute name="DiscoveryDisabled">false</attribute>

            <!-- Set the auto-discovery bootstrap multicast bind address. If not

            specified and a BindAddress is specified, the BindAddress will be used. -->

            <attribute name="AutoDiscoveryBindAddress">${jboss.bind.address}</attribute>

            <!-- Multicast Address and group port used for auto-discovery -->

            <attribute name="AutoDiscoveryAddress">${jboss.partition.udpGroup:230.0.0.4}</attribute>

            <attribute name="AutoDiscoveryGroup">1102</attribute>

            <!-- The TTL (time-to-live) for autodiscovery IP multicast packets -->

            <attribute name="AutoDiscoveryTTL">16</attribute>

            <!-- The load balancing policy for HA-JNDI -->

            <attribute name="LoadBalancePolicy">org.jboss.ha.framework.interfaces.RoundRobin</attribute>

       

            <!-- Client socket factory to be used for client-server

                 RMI invocations during JNDI queries

            <attribute name="ClientSocketFactory">custom</attribute>

            -->

            <!-- Server socket factory to be used for client-server

                 RMI invocations during JNDI queries

            <attribute name="ServerSocketFactory">custom</attribute>

            -->

         </mbean>

       

         <mbean code="org.jboss.invocation.jrmp.server.JRMPInvokerHA"

            name="jboss:service=invoker,type=jrmpha">

            <attribute name="ServerAddress">${jboss.bind.address}</attribute>

            <attribute name="RMIObjectPort">4447</attribute>

            <!--

            <attribute name="RMIClientSocketFactory">custom</attribute>

            <attribute name="RMIServerSocketFactory">custom</attribute>

            -->

            <depends>jboss:service=Naming</depends>

         </mbean>

       

         <!-- the JRMPInvokerHA creates a thread per request.  This implementation uses a pool of threads -->

         <mbean code="org.jboss.invocation.pooled.server.PooledInvokerHA"

            name="jboss:service=invoker,type=pooledha">

            <attribute name="NumAcceptThreads">1</attribute>

            <attribute name="MaxPoolSize">300</attribute>

            <attribute name="ClientMaxPoolSize">300</attribute>

            <attribute name="SocketTimeout">60000</attribute>

            <attribute name="ServerBindAddress">${jboss.bind.address}</attribute>

            <attribute name="ServerBindPort">4448</attribute>

            <attribute name="ClientConnectAddress">${jboss.bind.address}</attribute>

            <attribute name="ClientConnectPort">0</attribute>

            <attribute name="EnableTcpNoDelay">false</attribute>

            <depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>

            <depends>jboss:service=Naming</depends>

         </mbean>

       

         <!-- ==================================================================== -->

       

         <!-- ==================================================================== -->

         <!-- Distributed cache invalidation                                       -->

         <!-- ==================================================================== -->

       

         <mbean code="org.jboss.cache.invalidation.bridges.JGCacheInvalidationBridge"

            name="jboss.cache:service=InvalidationBridge,type=JavaGroups">

            <!-- We now inject the partition into the HAJNDI service instead

                 of requiring that the partition name be passed -->

            <depends optional-attribute-name="ClusterPartition"

               proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>

            <depends>jboss.cache:service=InvalidationManager</depends>

            <attribute name="InvalidationManager">jboss.cache:service=InvalidationManager</attribute>

            <attribute name="BridgeName">DefaultJGBridge</attribute>

         </mbean>

       

      </server>

       

      Configuration JBoss Cache (pojocache-service.xml)

       

      <?xml version="1.0" encoding="UTF-8"?>

       

      <!-- ===================================================================== -->

      <!--                                                                       -->

      <!--  Sample PojoCache Service Configuration                               -->

      <!--                                                                       -->

      <!-- ===================================================================== -->

       

      <server>

       

         <!-- Used inside JBoss AS -->

         <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>

       

         <!-- ==================================================================== -->

         <!-- Defines configuration                                                -->

         <!-- ==================================================================== -->

       

         <mbean code="org.jboss.cache.aop.PojoCache"

                name="jboss.cache:service=PojoCache">

       

            <!-- Used inside JBoss AS -->

            <depends>jboss:service=Naming</depends>

            <depends>jboss:service=TransactionManager</depends>

       

            <!--

                Configure the TransactionManager

            -->

            <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>

       

            <!--

                Node locking scheme:

                    OPTIMISTIC

                    PESSIMISTIC (default)

            -->

            <attribute name="NodeLockingScheme">PESSIMISTIC</attribute>

       

            <!--

                Note that this attribute is IGNORED if your NodeLockingScheme above is OPTIMISTIC.

       

                Isolation level : SERIALIZABLE

                                  REPEATABLE_READ (default)

                                  READ_COMMITTED

                                  READ_UNCOMMITTED

                                  NONE

            -->

            <attribute name="IsolationLevel">REPEATABLE_READ</attribute>

       

            <!--

                 Valid modes are LOCAL

                                 REPL_ASYNC

                                 REPL_SYNC

                                 INVALIDATION_ASYNC

                                 INVALIDATION_SYNC

            -->

            <attribute name="CacheMode">REPL_SYNC</attribute>

       

            <!-- Name of cluster. Needs to be the same for all clusters, in order

                 to find each other

            -->

            <attribute name="ClusterName">${jboss.cache.cluster.name:Default-Cache-Cluster}</attribute>

       

            <!-- JGroups protocol stack properties. Can also be a URL,

                 e.g. file:/home/bela/default.xml

               <attribute name="ClusterProperties"></attribute>

            -->

       

            <attribute name="ClusterConfig">

               <config>

                  <!-- UDP: if you have a multihomed machine,

        set the bind_addr attribute to the appropriate NIC IP address -->

                  <!-- UDP: On Windows machines, because of the media sense feature

            being broken with multicast (even after disabling media sense)

            set the loopback attribute to true -->

                  <UDP mcast_addr="${jboss.cache.udpGroup:228.1.3.5}" mcast_port="45577"

                       ip_ttl="64" ip_mcast="true"

                       mcast_send_buf_size="150000" mcast_recv_buf_size="80000"

                       ucast_send_buf_size="150000" ucast_recv_buf_size="80000"

                       loopback="false"/>

                  <PING timeout="2000" num_initial_members="3"

                        up_thread="false" down_thread="false"/>

                  <MERGE2 min_interval="10000" max_interval="20000"/>

                  <FD shun="true" up_thread="true" down_thread="true"/>

                  <VERIFY_SUSPECT timeout="1500"

                                  up_thread="false" down_thread="false"/>

                  <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"

                                 up_thread="false" down_thread="false"/>

                  <pbcast.STABLE desired_avg_gossip="20000"

                                 up_thread="false" down_thread="false"/>

                  <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"

                           down_thread="false"/>

                  <FRAG frag_size="8192"

                        down_thread="false" up_thread="false"/>

                  <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"

                              shun="true" print_local_addr="true"/>

                  <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>

               </config>

            </attribute>

       

       

            <!--

                The max amount of time (in milliseconds) we wait until the

                initial state (ie. the contents of the cache) are retrieved from

                existing members in a clustered environment

            -->

            <attribute name="InitialStateRetrievalTimeout">20000</attribute>

       

            <!--

                Number of milliseconds to wait until all responses for a

                synchronous call have been received.

            -->

            <attribute name="SyncReplTimeout">15000</attribute>

       

            <!-- Max number of milliseconds to wait for a lock acquisition -->

            <attribute name="LockAcquisitionTimeout">10000</attribute>

       

            <!--

            <attribute name="EvictionPolicyClass"></attribute>

            -->

       

            <!-- Name of the eviction policy class. We have commented it off to disable eviction.

            -->

            <attribute name="EvictionPolicyClass">org.jboss.cache.aop.eviction.AopLRUPolicy</attribute>

       

            <!-- Specific eviction policy configurations. This is LRU -->

            <attribute name="EvictionPolicyConfig">

               <config>

                  <attribute name="wakeUpIntervalSeconds">5</attribute>

                  <!-- Cache wide default -->

                  <region name="/_default_">

                     <attribute name="maxNodes">5000</attribute>

                     <attribute name="timeToLiveSeconds">1000</attribute>

                  </region>

                  <region name="/aop">

                      <attribute name="maxNodes">5</attribute>

                      <attribute name="timeToLiveSeconds">4</attribute>

                  </region>

                  <region name="/pojo">

                      <attribute name="maxNodes">100</attribute>

                      <attribute name="timeToLiveSeconds">4</attribute>

                  </region>

                  <region name="/testMaxNode">

                      <attribute name="maxNodes">4</attribute>

                      <attribute name="timeToLiveSeconds">100</attribute>

                  </region>

               </config>

            </attribute>

         </mbean>

       

      </server>

       

      Regards

      Jonas Heineson

        • 1. JBoss Cache and HAPartition, different clusters
          Jonas Heineson Newbie

          Seems like config disappeared, here it comes:

           

          Configuration HAPartition (cluster-service.xml):

           

           

          <?xml version="1.0" encoding="UTF-8"?>

           

          <!-- ===================================================================== -->

          <!--                                                                       -->

          <!--  Sample Clustering Service Configuration                              -->

          <!--                                                                       -->

          <!-- ===================================================================== -->

           

          <server>

           

             <!-- ==================================================================== -->

             <!-- Cluster Partition: defines cluster                                   -->

             <!-- ==================================================================== -->

           

             <mbean code="org.jboss.ha.framework.server.ClusterPartition"

                name="jboss:service=${jboss.partition.name:DefaultPartition}">

                  

                <!-- Name of the partition being built -->

                <attribute name="PartitionName">${jboss.partition.name:DefaultPartition}</attribute>

           

                <!-- The address used to determine the node name -->

                <attribute name="NodeAddress">${jboss.bind.address}</attribute>

           

                <!-- Determine if deadlock detection is enabled -->

                <attribute name="DeadlockDetection">False</attribute>

              

                <!-- Max time (in ms) to wait for state transfer to complete. Increase for large states -->

                <attribute name="StateTransferTimeout">30000</attribute>

           

                <!-- The JGroups protocol configuration -->

                <attribute name="PartitionConfig">

                   <!--

                   The default UDP stack:

                   - If you have a multihomed machine, set the UDP protocol's bind_addr attribute to the

                   appropriate NIC IP address, e.g bind_addr="192.168.0.2".

                   - On Windows machines, because of the media sense feature being broken with multicast

                   (even after disabling media sense) set the UDP protocol's loopback attribute to true

                   -->

                   <Config>

                      <UDP mcast_addr="${jboss.partition.udpGroup:228.1.2.5}" mcast_port="45588"

                         ip_ttl="8" ip_mcast="true"

                         mcast_send_buf_size="800000" mcast_recv_buf_size="150000"

                         ucast_send_buf_size="800000" ucast_recv_buf_size="150000"

                         loopback="true"/>

                      <PING timeout="2000" num_initial_members="3"

                         up_thread="true" down_thread="true"/>

                      <MERGE2 min_interval="10000" max_interval="20000"/>

                      <FD shun="true" up_thread="true" down_thread="true"

                         timeout="2500" max_tries="5"/>

                      <VERIFY_SUSPECT timeout="3000" num_msgs="3"

                         up_thread="true" down_thread="true"/>

                      <pbcast.NAKACK gc_lag="50" retransmit_timeout="300,600,1200,2400,4800"

                         max_xmit_size="8192"

                         up_thread="true" down_thread="true"/>

                      <UNICAST timeout="300,600,1200,2400,4800" window_size="100" min_threshold="10"

                         down_thread="true"/>

                      <pbcast.STABLE desired_avg_gossip="20000"

                         up_thread="true" down_thread="true"/>

                      <FRAG frag_size="8192"

                         down_thread="true" up_thread="true"/>

                      <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"

                         shun="true" print_local_addr="true"/>

                      <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>

                   </Config>

           

                </attribute>

                <depends>jboss:service=Naming</depends>

             </mbean>

           

             <!-- ==================================================================== -->

             <!-- HA Session State Service for SFSB                                    -->

             <!-- ==================================================================== -->

           

             <mbean code="org.jboss.ha.hasessionstate.server.HASessionStateService"

                name="jboss:service=HASessionState">

                <depends>jboss:service=Naming</depends>

                <!-- We now inject the partition into the HAJNDI service instead

                     of requiring that the partition name be passed -->

                <depends optional-attribute-name="ClusterPartition"

                   proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>

                <!-- JNDI name under which the service is bound -->

                <attribute name="JndiName">/HASessionState/Default</attribute>

                <!-- Max delay before cleaning unreclaimed state.

                     Defaults to 30*60*1000 => 30 minutes -->

                <attribute name="BeanCleaningDelay">0</attribute>

             </mbean>

           

             <!-- ==================================================================== -->

             <!-- HA JNDI                                                              -->

             <!-- ==================================================================== -->

           

             <mbean code="org.jboss.ha.jndi.HANamingService"

                name="jboss:service=HAJNDI">

                <!-- We now inject the partition into the HAJNDI service instead

                     of requiring that the partition name be passed -->

                <depends optional-attribute-name="ClusterPartition"

                   proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>

                <!-- Bind address of bootstrap and HA-JNDI RMI endpoints -->

                <attribute name="BindAddress">${jboss.bind.address}</attribute>

                <!-- Port on which the HA-JNDI stub is made available -->

                <attribute name="Port">1100</attribute>

                <!-- RmiPort to be used by the HA-JNDI service once bound. 0 => auto. -->

                <attribute name="RmiPort">1101</attribute>

                <!-- Accept backlog of the bootstrap socket -->

                <attribute name="Backlog">50</attribute>

                <!-- The thread pool service used to control the bootstrap and

                auto discovery lookups -->

                <depends optional-attribute-name="LookupPool"

                   proxy-type="attribute">jboss.system:service=ThreadPool</depends>

           

                <!-- A flag to disable the auto discovery via multicast -->

                <attribute name="DiscoveryDisabled">false</attribute>

                <!-- Set the auto-discovery bootstrap multicast bind address. If not

                specified and a BindAddress is specified, the BindAddress will be used. -->

                <attribute name="AutoDiscoveryBindAddress">${jboss.bind.address}</attribute>

                <!-- Multicast Address and group port used for auto-discovery -->

                <attribute name="AutoDiscoveryAddress">${jboss.partition.udpGroup:230.0.0.4}</attribute>

                <attribute name="AutoDiscoveryGroup">1102</attribute>

                <!-- The TTL (time-to-live) for autodiscovery IP multicast packets -->

                <attribute name="AutoDiscoveryTTL">16</attribute>

                <!-- The load balancing policy for HA-JNDI -->

                <attribute name="LoadBalancePolicy">org.jboss.ha.framework.interfaces.RoundRobin</attribute>

               

                <!-- Client socket factory to be used for client-server

                     RMI invocations during JNDI queries

                <attribute name="ClientSocketFactory">custom</attribute>

                -->

                <!-- Server socket factory to be used for client-server

                     RMI invocations during JNDI queries

                <attribute name="ServerSocketFactory">custom</attribute>

                -->

             </mbean>

           

             <mbean code="org.jboss.invocation.jrmp.server.JRMPInvokerHA"

                name="jboss:service=invoker,type=jrmpha">

                <attribute name="ServerAddress">${jboss.bind.address}</attribute>

                <attribute name="RMIObjectPort">4447</attribute>

                <!--

                <attribute name="RMIClientSocketFactory">custom</attribute>

                <attribute name="RMIServerSocketFactory">custom</attribute>

                -->

                <depends>jboss:service=Naming</depends>

             </mbean>

           

             <!-- the JRMPInvokerHA creates a thread per request.  This implementation uses a pool of threads -->

             <mbean code="org.jboss.invocation.pooled.server.PooledInvokerHA"

                name="jboss:service=invoker,type=pooledha">

                <attribute name="NumAcceptThreads">1</attribute>

                <attribute name="MaxPoolSize">300</attribute>

                <attribute name="ClientMaxPoolSize">300</attribute>

                <attribute name="SocketTimeout">60000</attribute>

                <attribute name="ServerBindAddress">${jboss.bind.address}</attribute>

                <attribute name="ServerBindPort">4448</attribute>

                <attribute name="ClientConnectAddress">${jboss.bind.address}</attribute>

                <attribute name="ClientConnectPort">0</attribute>

                <attribute name="EnableTcpNoDelay">false</attribute>

                <depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>

                <depends>jboss:service=Naming</depends>

             </mbean>

           

             <!-- ==================================================================== -->

           

             <!-- ==================================================================== -->

             <!-- Distributed cache invalidation                                       -->

             <!-- ==================================================================== -->

           

             <mbean code="org.jboss.cache.invalidation.bridges.JGCacheInvalidationBridge"

                name="jboss.cache:service=InvalidationBridge,type=JavaGroups">

                <!-- We now inject the partition into the HAJNDI service instead

                     of requiring that the partition name be passed -->

                <depends optional-attribute-name="ClusterPartition"

                   proxy-type="attribute">jboss:service=${jboss.partition.name:DefaultPartition}</depends>

                <depends>jboss.cache:service=InvalidationManager</depends>

                <attribute name="InvalidationManager">jboss.cache:service=InvalidationManager</attribute>

                <attribute name="BridgeName">DefaultJGBridge</attribute>

             </mbean>

           

          </server>

           

           

          Configuration JBoss Cache (pojocache-service.xml)

           

          <?xml version="1.0" encoding="UTF-8"?>

           

          <!-- ===================================================================== -->

          <!--                                                                       -->

          <!--  Sample PojoCache Service Configuration                               -->

          <!--                                                                       -->

          <!-- ===================================================================== -->

           

          <server>

           

             <!-- Used inside JBoss AS -->

             <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>

           

             <!-- ==================================================================== -->

             <!-- Defines configuration                                                -->

             <!-- ==================================================================== -->

           

             <mbean code="org.jboss.cache.aop.PojoCache"

                    name="jboss.cache:service=PojoCache">

           

                <!-- Used inside JBoss AS -->

                <depends>jboss:service=Naming</depends>

                <depends>jboss:service=TransactionManager</depends>

           

                <!--

                    Configure the TransactionManager

                -->

                <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>

           

                <!--

                    Node locking scheme:

                        OPTIMISTIC

                        PESSIMISTIC (default)

                -->

                <attribute name="NodeLockingScheme">PESSIMISTIC</attribute>

           

                <!--

                    Note that this attribute is IGNORED if your NodeLockingScheme above is OPTIMISTIC.

           

                    Isolation level : SERIALIZABLE

                                      REPEATABLE_READ (default)

                                      READ_COMMITTED

                                      READ_UNCOMMITTED

                                      NONE

                -->

                <attribute name="IsolationLevel">REPEATABLE_READ</attribute>

           

                <!--

                     Valid modes are LOCAL

                                     REPL_ASYNC

                                     REPL_SYNC

                                     INVALIDATION_ASYNC

                                     INVALIDATION_SYNC

                -->

                <attribute name="CacheMode">REPL_SYNC</attribute>

           

                <!-- Name of cluster. Needs to be the same for all clusters, in order

                     to find each other

                -->

                <attribute name="ClusterName">${jboss.cache.cluster.name:Default-Cache-Cluster}</attribute>

           

                <!-- JGroups protocol stack properties. Can also be a URL,

                     e.g. file:/home/bela/default.xml

                   <attribute name="ClusterProperties"></attribute>

                -->

           

                <attribute name="ClusterConfig">

                   <config>

                      <!-- UDP: if you have a multihomed machine,

            set the bind_addr attribute to the appropriate NIC IP address -->

                      <!-- UDP: On Windows machines, because of the media sense feature

                being broken with multicast (even after disabling media sense)

                set the loopback attribute to true -->

                      <UDP mcast_addr="${jboss.cache.udpGroup:228.1.2.5}" mcast_port="45577"

                           ip_ttl="64" ip_mcast="true"

                           mcast_send_buf_size="150000" mcast_recv_buf_size="80000"

                           ucast_send_buf_size="150000" ucast_recv_buf_size="80000"

                           loopback="false"/>

                      <PING timeout="2000" num_initial_members="3"

                            up_thread="false" down_thread="false"/>

                      <MERGE2 min_interval="10000" max_interval="20000"/>

                      <FD shun="true" up_thread="true" down_thread="true"/>

                      <VERIFY_SUSPECT timeout="1500"

                                      up_thread="false" down_thread="false"/>

                      <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"

                                     up_thread="false" down_thread="false"/>

                      <pbcast.STABLE desired_avg_gossip="20000"

                                     up_thread="false" down_thread="false"/>

                      <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"

                               down_thread="false"/>

                      <FRAG frag_size="8192"

                            down_thread="false" up_thread="false"/>

                      <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"

                                  shun="true" print_local_addr="true"/>

                      <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>

                   </config>

                </attribute>

           

           

                <!--

                    The max amount of time (in milliseconds) we wait until the

                    initial state (ie. the contents of the cache) are retrieved from

                    existing members in a clustered environment

                -->

                <attribute name="InitialStateRetrievalTimeout">20000</attribute>

           

                <!--

                    Number of milliseconds to wait until all responses for a

                    synchronous call have been received.

                -->

                <attribute name="SyncReplTimeout">15000</attribute>

           

                <!-- Max number of milliseconds to wait for a lock acquisition -->

                <attribute name="LockAcquisitionTimeout">10000</attribute>

           

                <!--

                <attribute name="EvictionPolicyClass"></attribute>

                -->

           

                <!-- Name of the eviction policy class. We have commented it off to disable eviction.

                -->

                <attribute name="EvictionPolicyClass">org.jboss.cache.aop.eviction.AopLRUPolicy</attribute>

           

                <!-- Specific eviction policy configurations. This is LRU -->

                <attribute name="EvictionPolicyConfig">

                   <config>

                      <attribute name="wakeUpIntervalSeconds">5</attribute>

                      <!-- Cache wide default -->

                      <region name="/_default_">

                         <attribute name="maxNodes">5000</attribute>

                         <attribute name="timeToLiveSeconds">1000</attribute>

                      </region>

                      <region name="/aop">

                          <attribute name="maxNodes">5</attribute>

                          <attribute name="timeToLiveSeconds">4</attribute>

                      </region>

                      <region name="/pojo">

                          <attribute name="maxNodes">100</attribute>

                          <attribute name="timeToLiveSeconds">4</attribute>

                      </region>

                      <region name="/testMaxNode">

                          <attribute name="maxNodes">4</attribute>

                          <attribute name="timeToLiveSeconds">100</attribute>

                      </region>

                   </config>

                </attribute>

             </mbean>

           

          </server>