1 Reply Latest reply on Aug 29, 2006 6:50 PM by brian.stansberry

    JBoss Cache Cluster Problem within JBoss AS 4.0.2

    gh_aiyz

      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

          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)?