JBoss Community

Re: JBoss Cache and HAPartition, different clusters

created by Jonas Heineson in JBoss Cache - View the full discussion

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>

Reply to this message by going to Community

Start a new discussion in JBoss Cache at Community