1 Reply Latest reply on Feb 18, 2013 12:13 AM by liwenxian

    TimeoutException

    vdeminico

      Hi all,

      I use JBoss Cache Pojo Edition v. 3.0 on a JBOSS AS 5.1.0. I have a cluster with two nodes and the following is pojocache configuration file:

       

       

      <?xml version="1.0" encoding="UTF-8"?>
      
      
      <!-- ===================================================================== -->
      <!--                                                                       -->
      <!--  Sample TreeCache Service Configuration                               -->
      <!--                                                                       -->
      <!-- ===================================================================== -->
      
      
      <server>
      <mbean code="org.jboss.cache.pojo.jmx.PojoCacheJmxWrapper" 
                name="jboss.cache:service=PojoCache">
            <depends>jboss:service=TransactionManager</depends>
           
                  
            <!-- Isolation level : SERIALIZABLE
                                   REPEATABLE_READ (default)
                                   READ_COMMITTED
                                   READ_UNCOMMITTED
                                   NONE
            -->
            <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
      
      
            <!-- Valid modes are LOCAL, REPL_ASYNC and REPL_SYNC -->
            <attribute name="CacheMode">REPL_SYNC</attribute>
      
      
            <!-- Name of cluster. Needs to be the same for all caches, 
                 in order for them to find each other
            -->
            <attribute name="ClusterName">PojoCacheCluster</attribute>
      
      
                     <!-- JGroups protocol stack properties. -->
            <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="48866"
                       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"/>
                  <MERGE2 min_interval="10000" max_interval="20000"/>
                  <FD shun="true"/>
                  <FD_SOCK/>
                  <VERIFY_SUSPECT timeout="1500"/>
                  <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
                                 max_xmit_size="8192"/>
                  <UNICAST timeout="600,1200,2400,4800"/>
                  <pbcast.STABLE desired_avg_gossip="400000"/>
                  <FC max_credits="2000000" min_threshold="0.10"/>
                  <FRAG2 frag_size="8192"/>
                  <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
                              shun="true" print_local_addr="true"/>
                  <pbcast.STATE_TRANSFER/>
               </config>
            </attribute>
            <!-- CacheLoaderConfiguration -->
      <attribute name="CacheLoaderConfig">
         <config>
            <passivation>false</passivation>
            <preload>/profile</preload>
            <shared>true</shared>
                <cacheloader>
                 <class>
                 org.jboss.cache.loader.ClusteredCacheLoader
                 </class>
                 <properties>timeout=3000</properties>
                 <async>false</async>
                 <fetchPersistentState>false</fetchPersistentState>
                 <ignoreModifications>false</ignoreModifications>
              </cacheloader>
      
      
         </config>
      </attribute>
      
      
            <!-- Whether or not to fetch state on joining a cluster -->
            <attribute name="FetchInMemoryState">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">15000</attribute>
      
      
            <!-- Number of milliseconds to wait until all responses for a
                 synchronous call have been received. default 15000
            -->
            <attribute name="SyncReplTimeout">60000</attribute>
      
      
            <!--  Max number of milliseconds to wait for a lock acquisition 
                default 10000
                -->
            <attribute name="LockAcquisitionTimeout">60000</attribute>
         
         </mbean>
      
      
      </server>
      
      

       

      After about 5-10 minutes and randomly I have this timeout exception:

       

       

      org.jboss.cache.pojo.PojoCacheException: attach failed /profile/3966140353081738423
                at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:111)
                at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:93)
                at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:88)
                at it.citel.timsocial.fe.ejb.cache.CacheManagerBean.attach(CacheManagerBean.java:109)
                ... 170 more
      Caused by: org.jboss.cache.lock.TimeoutException: Replication timeout for 10.173.49.90:60920
                at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:768)
                at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:716)
                at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:721)
                at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:161)
                at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:135)
                at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:107)
                at org.jboss.cache.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:160)
                at org.jboss.cache.interceptors.ReplicationInterceptor.visitPutDataMapCommand(ReplicationInterceptor.java:113)
                at org.jboss.cache.commands.write.PutDataMapCommand.acceptVisitor(PutDataMapCommand.java:104)
                at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
                at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:131)
                at org.jboss.cache.commands.AbstractVisitor.visitPutDataMapCommand(AbstractVisitor.java:60)
                at org.jboss.cache.commands.write.PutDataMapCommand.acceptVisitor(PutDataMapCommand.java:104)
                at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
                at org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:301)
                at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:283)
                at org.jboss.cache.commands.AbstractVisitor.visitPutDataMapCommand(AbstractVisitor.java:60)
                at org.jboss.cache.commands.write.PutDataMapCommand.acceptVisitor(PutDataMapCommand.java:104)
                at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
                at org.jboss.cache.interceptors.CacheMgmtInterceptor.visitPutDataMapCommand(CacheMgmtInterceptor.java:97)
                at org.jboss.cache.commands.write.PutDataMapCommand.acceptVisitor(PutDataMapCommand.java:104)
                at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
                at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:178)
                at org.jboss.cache.interceptors.InvocationContextInterceptor.visitPutDataMapCommand(InvocationContextInterceptor.java:64)
                at org.jboss.cache.commands.write.PutDataMapCommand.acceptVisitor(PutDataMapCommand.java:104)
                at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:287)
                at org.jboss.cache.invocation.CacheInvocationDelegate.invokePut(CacheInvocationDelegate.java:705)
                at org.jboss.cache.invocation.CacheInvocationDelegate.put(CacheInvocationDelegate.java:519)
                at org.jboss.cache.pojo.impl.InternalHelper.put(InternalHelper.java:110)
                at org.jboss.cache.pojo.impl.SerializableObjectHandler.putIntoCache(SerializableObjectHandler.java:86)
                at org.jboss.cache.pojo.impl.SerializableObjectHandler.put(SerializableObjectHandler.java:71)
                at org.jboss.cache.pojo.impl.PojoCacheDelegate.putObject(PojoCacheDelegate.java:138)
                at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:102)
      
      

       

      It seems that a timeout occurs on a lock acquisition...

      Any idea about the cause???

       

      Thanks,

      Valerio.

        • 1. Re: TimeoutException
          liwenxian

          org.jboss.cache.lock.TimeoutException: Replication timeout for ip:port

                    at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:453)

                    at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:368)

                    at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:373)

                    at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:127)

                    at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:88)

                    at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:83)

                    at org.jboss.cache.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:182)

                    at org.jboss.cache.interceptors.ReplicationInterceptor.handlePutKeyValueMethod(ReplicationInterceptor.java:107)

                    at org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:75)

                    at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)

                    at org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:58)

                    at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)

                    at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:456)

                    at org.jboss.cache.interceptors.TxInterceptor.handlePutKeyValueMethod(TxInterceptor.java:265)

                    at org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:75)

                    at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)

                    at org.jboss.cache.interceptors.CacheMgmtInterceptor.handlePutExternalAndKeyValue(CacheMgmtInterceptor.java:139)

                    at org.jboss.cache.interceptors.CacheMgmtInterceptor.handlePutKeyValueMethod(CacheMgmtInterceptor.java:132)

                    at org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:75)

          ...

          哪位高手知道