0 Replies Latest reply on Jul 14, 2009 5:44 AM by Mayank Mittal

    Jboss Cache in cluster

    Mayank Mittal Novice

      Hello All,
      I'am using Jboss Cache 1.4.1 SP9 with Jboss 4.2.3 and JDK 6.0 U 11, to replicate some of my date over different nodes in the cluster.
      now the problem is that,if any node comes back in the cluster, all other of my nodes looses their data. I just go through the Wiki and clustering guide to solve this issue, but just of no use.

      my Cache configuration is

      
      <server>
      
      
       <!-- ==================================================================== -->
       <!-- Defines TreeCache configuration -->
       <!-- ==================================================================== -->
      
       <mbean code="org.jboss.cache.TreeCache"
       name="jboss.cache:service=SessionTreeCache">
      
       <depends>jboss:service=Naming</depends>
       <depends>jboss:service=TransactionManager</depends>
      
       <!--
       Configure the TransactionManager
       -->
       <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
      
      
       <!--
       DataNode locking 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_ASYNC</attribute>
      
      
      
       <!--
       Just used for async repl: use a replication queue
       -->
       <attribute name="UseReplQueue">true</attribute>
      
       <!--
       Replication interval for replication queue (in ms)
       -->
       <attribute name="ReplQueueInterval">1000</attribute>
      
       <!--
       Max number of elements which trigger replication
       -->
       <attribute name="ReplQueueMaxElements">0</attribute>
      
      
       <!-- Name of cluster. Needs to be the same for all clusters, in order
       to find each other
       -->
       <attribute name="ClusterName">TreeCache-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="228.1.2.3" mcast_port="45566"
       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" />-->
       <FD_SOCK/>
       <VERIFY_SUSPECT timeout="1500"
       up_thread="false" down_thread="false"/>
       <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
       max_xmit_size="8192" up_thread="false" down_thread="false"/>
       <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
       down_thread="false"/>
       <pbcast.STABLE desired_avg_gossip="20000"
       up_thread="false" 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="true" down_thread="true"/>
       </config>
       </attribute>
      
       <!--
       Whether or not to fetch state on joining a cluster
       -->
       <attribute name="FetchStateOnStartup">true</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">5000</attribute>
      
       <!--
       Number of milliseconds to wait until all responses for a
       synchronous call have been received.
       -->
       <attribute name="SyncReplTimeout">10000</attribute>
      
       <!-- Max number of milliseconds to wait for a lock acquisition -->
       <attribute name="LockAcquisitionTimeout">15000</attribute>
      
       <!-- Name of the eviction policy class. Not supported now. -->
       <attribute name="EvictionPolicyClass"></attribute>
      
       </mbean>
      
       <!-- New 1.3.x cache loader config block -->
       <attribute name="CacheLoaderConfiguration">
       <config>
       <!-- if passivation is true, only the first cache loader is
       used; the rest are ignored -->
       <passivation>false</passivation>
       <!-- comma delimited FQNs to preload -->
       <preload>/Session</preload>
       <!-- are the cache loaders shared in a cluster? -->
       <shared>true</shared>
      
       <!-- we can now have multiple cache loaders, which get
       chained -->
       <!-- the 'cacheloader' element may be repeated -->
       <cacheloader>
       <class>org.jboss.cache.loader.ClusteredCacheLoader</class>
       <!-- same as the old CacheLoaderConfig attribute -->
       <properties>
       timeout=3000
       <!--cache.jdbc.datasource=java:/DefaultDS
       cache.jdbc.node.type=abyte
       -->
       </properties>
       <!-- whether the cache loader writes are asynchronous-->
       <!-- <async>false</async> -->
       <!-- only one cache loader in the chain may set fetchPersistentState
       to true. An exception is thrown if more than one cache loader sets this
       to true. -->
       <!-- <fetchPersistentState>true</fetchPersistentState> -->
       <!-- determines whether this cache loader ignores writes - defaults
       to false. -->
       <!-- <ignoreModifications>false</ignoreModifications> -->
       <!-- if set to true, purges the contents of this cache loader when
       the cache starts up. Defaults to false. -->
       <!-- <purgeOnStartup>false</purgeOnStartup> -->
       </cacheloader>
       </config>
       </attribute>
      </server>