1 Reply Latest reply on Aug 29, 2006 6:50 PM by Brian Stansberry

    JBoss Cache Cluster Problem within JBoss AS 4.0.2

    laoding yu Newbie

      Hi all, I got a problem when use JBoss Cache 1.4.0 within JBoss AS 4.0.2.
      I have two application servers. when they start up, the caches can find each other, and fetch the in-memory status successfully. But when I put an object into cache A, it does not replicate the object to cache B; however, when I remove this object from A, it's also removed from B....

      Yes, the insert is not replicated while the removing is replicated successfully.

      what's wrong with my configuration? Please help me.

      <!-- ==================================================================== -->
       <!-- JBoss Cache -->
       <!-- ==================================================================== -->
       <mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=V360WebLayerCache">
       <depends>jboss:service=Naming</depends>
       <depends>jboss:service=TransactionManager</depends>
       <attribute name="TransactionManagerLookupClass">
       org.jboss.cache.JBossTransactionManagerLookup
       </attribute>
       <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
       <attribute name="CacheMode">REPL_SYNC</attribute>
       <attribute name="FetchInMemoryState">true</attribute>
       <attribute name="ClusterName">${aa.cache.cluster.name}.web</attribute>
       <attribute name="ClusterConfig">
       <config>
       <UDP mcast_port="${aa.cache.cluster.port}" 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>
       <attribute name="InitialStateRetrievalTimeout">20000</attribute>
       <attribute name="SyncReplTimeout">15000</attribute>
       <attribute name="LockAcquisitionTimeout">10000</attribute>
       <!--attribute name="EvictionPolicyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
       <attribute name="EvictionPolicyConfig">
       <config>
       <attribute name="wakeUpIntervalSeconds">200</attribute>
       <region name="/${aa.cache.web.fid.root}">
       <attribute name="maxNodes">${aa.cache.web.fid.maxNode}</attribute>
       <attribute name="timeToLiveSeconds">${aa.cache.web.fid.timeToLive}</attribute>
       </region>
       <region name="/${aa.cache.web.guitext.root}">
       <attribute name="maxNodes">${aa.cache.web.guitext.maxNode}</attribute>
       <attribute name="timeToLiveSeconds">${aa.cache.web.guitext.timeToLive}</attribute>
      
       </region>
       <region name="/${aa.cache.web.bizdomain.root}">
       <attribute name="maxNodes">${aa.cache.web.bizdomain.maxNode}</attribute>
       <attribute name="timeToLiveSeconds">${aa.cache.web.bizdomain.timeToLive}</attribute>
      
       </region>
       <region name="/${aa.cache.web.constant.root}">
       <attribute name="maxNodes">${aa.cache.web.constant.maxNode}</attribute>
       <attribute name="timeToLiveSeconds">${aa.cache.web.constant.timeToLive}</attribute>
      
       </region>
       <region name="/${aa.cache.web.gview.root}">
       <attribute name="maxNodes">${aa.cache.web.gview.maxNode}</attribute>
       <attribute name="timeToLiveSeconds">${aa.cache.web.gview.timeToLive}</attribute>
      
       </region>
       <region name="/${aa.cache.web.general.root}">
       <attribute name="maxNodes">${aa.cache.web.general.maxNode}</attribute>
       <attribute name="timeToLiveSeconds">${aa.cache.web.general.timeToLive}</attribute>
      
       </region>
       </config>
       </attribute-->
       </mbean>
      
      
      
       <!-- ==================================================================== -->
       <!-- JBoss Cache JNDI -->
       <!-- ==================================================================== -->
       <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
       name="mydomain:service=proxyFactory,type=jrmp,target=factory">
       <attribute name="InvokerName">
       jboss:service=invoker,type=jrmp
       </attribute>
       <attribute name="TargetName">
       jboss.cache:service=V360WebLayerCache
       </attribute>
       <attribute name="JndiName">${aa.cache.jndi.name}</attribute>
       <attribute name="InvokeTargetMethod">true</attribute>
       <attribute name="ExportedInterface">
       org.jboss.cache.TreeCacheMBean
       </attribute>
       <depends>jboss:service=invoker,type=jrmp</depends>
       <depends>jboss.cache:service=V360WebLayerCache</depends>
       </mbean>
      


      All the ${} variables are in an individual file.

        • 1. Re: JBoss Cache Cluster Problem within JBoss AS 4.0.2
          Brian Stansberry Master

          These are just random comments, as your config file looks fine and this kind of basic stuff just works, so I have no good idea.

          1) Your post shows all the eviction config commented out. That's good, otherwise there is a chance the data was being replicated but then evicted.

          2) Please ensure the jboss-serialization.jar that comes with 1.4.0 is included in server/all/lib.

          3) Is the class being replicated visible to the JBoss Cache classloader (i.e. its a system class or in a jar that's in server/all/lib)?