Hi all!

I'm having problems with Jboss Cache 1.4 GA (running under JBoss 4.0.4GA with 
JGroups 2.2.9.3).

The cache is deployed as mbean in JBoss and then it's "fetched" in a war-app. 
Beacuse of this we are using RegionBasedMarshalling.
The cache is also configured to use a ReplQueue and it looks like this combo is 
causing trouble. If I disable the ReplQueue it works just fine, and if I 
disable  the RegionBasedMarshalling the ReplQueue works.

The error I get (when using ReplQueueMaxElements=2 and ReplQueueInterval=0) is:

  | 15:42:25,814 ERROR [RpcDispatcher] 
exception=java.lang.IllegalArgumentException: 
LegacyTreeCacheMarshaller.extractFqn(): Unknown method call name: _replicate
  | 15:42:25,814 ERROR [ReplicationQueue] failed replicating 2 elements in 
replication queue
  | java.io.NotSerializableException: RpcDispatcher returned a null.  This is 
most often caused by args for _replicate([_replicate(_put(null, /status, 
10.60.15.101:4629, [EMAIL PROTECTED], true)), _replicate(_put(null, 
/objects/com/hm/website/domain/navigation/NavigationNode/OBJECTS, working, 
[EMAIL PROTECTED], true))]) not being serializable.
  |     at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:4166)
  |     at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:4113)
  |     at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:4221)
  |     at org.jboss.cache.ReplicationQueue.flush(ReplicationQueue.java:149)
  |     at org.jboss.cache.ReplicationQueue.add(ReplicationQueue.java:131)
  |     at 
org.jboss.cache.interceptors.BaseRpcInterceptor.putCallOnAsyncReplicationQueue(BaseRpcInterceptor.java:130)
  |     at 
org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:98)
  |     at 
org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:88)
  |     at 
org.jboss.cache.interceptors.ReplicationInterceptor.handleReplicatedMethod(ReplicationInterceptor.java:114)
  |     at 
org.jboss.cache.interceptors.ReplicationInterceptor.invoke(ReplicationInterceptor.java:83)
  |     at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
  |     at 
org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:345)
  |     at 
org.jboss.cache.interceptors.TxInterceptor.invoke(TxInterceptor.java:156)
  |     at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
  |     at 
org.jboss.cache.interceptors.CacheMgmtInterceptor.invoke(CacheMgmtInterceptor.java:157)
  |     at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5517)
  |     at org.jboss.cache.TreeCache.put(TreeCache.java:3677)
  | 
  | .....
  | 

And this strange error occurs when I use ReplQueueInterval=1000



  | 16:06:56,855 ERROR [RpcDispatcher] 
exception=java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
  | 16:06:56,886 ERROR [ReplicationQueue] failed replicating 0 elements in 
replication queue
  | java.io.NotSerializableException: RpcDispatcher returned a null.  This is 
most often caused by args for _replicate([]) not being serializable.
  |     at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:4166)
  |     at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:4113)
  |     at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:4221)
  |     at org.jboss.cache.ReplicationQueue.flush(ReplicationQueue.java:149)
  |     at 
org.jboss.cache.ReplicationQueue$MyTask.run(ReplicationQueue.java:158)
  |     at java.util.TimerThread.mainLoop(Timer.java:512)
  |     at java.util.TimerThread.run(Timer.java:462)
  | 

So, is there a known issue with this combo?
I tried debugging the cache (callRemoteMethods(List mbrs, MethodCall 
method_call, int mode, boolean exclude_self, long timeout) in TreeCache.java) 
and it seems like the problem is with the LegacyTreeCacheMarshaller. Should it 
even be used?

Thanks for any help! 

BR, Carl


Here is my init-block in the war-app that connects to the cache in JBoss:

  | 
  | ObjectName objectName;
  |         try {
  |             objectName = new ObjectName(CACHE_MBEAN_OBJECT_NAME);
  |         }
  |         catch (Throwable t) {
  |             throw new NetCacheException("Malformed TreeCache ObjectName");
  |         }
  | 
  |         TreeCacheMBean mbean;
  |         try {
  |             mbean = (TreeCacheMBean) 
MBeanProxyExt.create(TreeCacheMBean.class, objectName);
  |         }
  |         catch (Throwable t) {
  |             log.error("Unable to locate TreeCache MBean under object name " 
+ CACHE_MBEAN_OBJECT_NAME, t);
  |             throw new NetCacheException("Unable to locate TreeCache MBean 
under object name " + CACHE_MBEAN_OBJECT_NAME);
  |         }
  | 
  |         cache = mbean;
  |         log.info("Successfully retrived TreeCache mbean from JBossAS");
  |         try {
  |             cache.registerClassLoader("/", 
Thread.currentThread().getContextClassLoader());
  |         } catch (RegionNameConflictException e) {
  |             log.error("Could not register classloader!", e);
  |             throw new NetCacheException("Could not register classloader!", 
e);
  |         }
  |         try {
  |             cache.activateRegion("/");
  |         } catch (RegionNameConflictException e) {
  |             log.error("Could not activateRegion / ", e);
  |             throw new NetCacheException("Could not activateRegion / ", e);
  |         } catch (CacheException e) {
  |             log.error("Could not activateRegion / ", e);
  |             throw new NetCacheException("Could not activateRegion / ", e);
  |         }
  | 
  | 


And here's my config for the cache:


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <!-- ===================================================================== 
-->
  | <!--                                                                       
-->
  | <!--  Customized TreeCache Service Configuration for HM                     
   -->
  | <!--                                                                       
-->
  | <!-- ===================================================================== 
-->
  | 
  | <server>
  | 
  |     <!-- 
==================================================================== -->
  |     <!-- Defines TreeCache configuration                                    
  -->
  |     <!-- 
==================================================================== -->
  | 
  |     <mbean code="org.jboss.cache.TreeCache"
  |         name="com.hm.website.core.cache:service=HmTreeCache">
  | 
  |         <depends>jboss:service=Naming</depends>
  |         <depends>jboss:service=TransactionManager</depends>
  | 
  |         <!-- Configure the TransactionManager -->
  |         <attribute 
name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
  |         <!-- <attribute 
name="TransactionManagerLookupClass">org.jboss.cache.DummyTransactionManagerLookup</attribute>
 -->
  | 
  |         <!--
  |             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_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">2</attribute>
  |         
  | 
  |         <!-- Name of cluster. Needs to be the same for all clusters, in 
order
  |              to find each other
  |         -->
  |         <attribute name="ClusterName">hmtreecache-devg3</attribute>
  | 
  |         <!-- JGroups protocol stack properties. Can also be a URL,
  |              e.g. file:/home/bela/default.xml
  |            <attribute name="ClusterProperties"></attribute>
  |         -->
  | 
  |         <attribute name="ClusterConfig">
  |             <!--
  |             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="230.1.2.17" 
  |                                      mcast_port="4557" 
  | 
  |                                      ip_ttl="32"
  |                                      enable_bundling="true"
  |                                      max_bundle_size="64000" 
max_bundle_timeout="300"
  |                                      mcast_send_buf_size="10000000" 
mcast_recv_buf_size="10000000"
  |                                      ucast_send_buf_size="10000000" 
ucast_recv_buf_size="10000000"
  |                                      loopback="true"
  |                                      use_incoming_packet_handler="false" 
  |                                      use_outgoing_packet_handler="true" 
  | 
  |                                     />
  |                             <PING timeout="2000" num_initial_members="3" 
down_thread="false"/>
  |                             <MERGE2 min_interval="5000" down_thread="false" 
max_interval="10000"/>
  |                             <FD_SOCK down_thread="false" />
  |                             <VERIFY_SUSPECT timeout="1500"  
down_thread="false"/>
  |                             <pbcast.NAKACK max_xmit_size="60000" 
down_thread="false"
  |                                                        
use_mcast_xmit="true" gc_lag="50"
  |                                                        
retransmit_timeout="300,600,1200,2400,4800" discard_delivered_msgs="true" />
  |                             <UNICAST timeout="300,600,1200,2400,3600" 
down_thread="false"/>
  |                             <pbcast.STABLE stability_delay="1000" 
desired_avg_gossip="5000" down_thread="false" max_bytes="250000"/>
  |                             <pbcast.GMS print_local_addr="true" 
join_timeout="3000" down_thread="false" join_retry_timeout="2000" shun="true" 
/> 
  |                             <FC max_credits="1000000" down_thread="false" 
min_threshold="0.10" /> 
  |                             <FRAG frag_size="60000" down_thread="false" 
up_thread="true" /> 
  |                             <COMPRESS down_thread="false" min_size="500" 
compression_level="3" up_thread="true" /> 
  |                             <pbcast.STATE_TRANSFER down_thread="false" 
up_thread="false" /> 
  |             </config>
  |         </attribute>
  |         
  |         
  |         
  |         
  |         <!--
  |              Whether or not to fetch state on joining a cluster
  |              NOTE this used to be called FetchStateOnStartup and has been 
renamed to be more descriptive.
  |             -->
  |             <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">20000</attribute>
  | 
  |             <!--
  |                     Number of milliseconds to wait until all responses for a
  |                     synchronous call have been received.
  |             -->
  |             <attribute name="SyncReplTimeout">20000</attribute>
  | 
  |             <!-- Max number of milliseconds to wait for a lock acquisition 
-->
  |             <attribute name="LockAcquisitionTimeout">15000</attribute>
  | 
  | 
  |        <!--
  |               Indicate whether to use marshalling or not. Set this to true 
if you are running under a scoped
  |               class loader, e.g., inside an application server. Default is 
"false".
  |        -->        
  |         <!-- Configure Marshalling -->
  |         <attribute name="UseRegionBasedMarshalling">true</attribute>
  |             <attribute name="InactiveOnStartup">true</attribute>
  |             
  |             <!-- Name of the eviction policy class. -->
  |       <attribute 
name="EvictionPolicyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
  |       <!-- Specific eviction policy configurations. This is LRU -->
  |       <attribute name="EvictionPolicyConfig">
  |              <config>
  |                     <attribute name="wakeUpIntervalSeconds">60</attribute>
  |                     <!-- Cache wide default -->
  |                     <region name="/_default_">
  |                        <attribute name="maxNodes">0</attribute>
  |                        <attribute name="timeToLiveSeconds">0</attribute>
  |                        <attribute name="maxAgeSeconds">0</attribute>
  |                     </region>
  |                     <region name="/objects" 
policyClass="org.jboss.cache.eviction.LRUPolicy">
  |                        <attribute name="maxNodes">5000</attribute>
  |                        <attribute name="maxAgeSeconds">21600</attribute>
  |                        <attribute name="timeToLiveSeconds">21600</attribute>
  |                     </region>
  |                     <region name="/status" 
policyClass="org.jboss.cache.eviction.LRUPolicy">
  |                        <attribute name="maxNodes">0</attribute>
  |                        <attribute name="timeToLiveSeconds">0</attribute>
  |                        <attribute name="maxAgeSeconds">0</attribute>
  |                     </region>
  |              </config>
  |       </attribute>
  | 
  | 
  |     </mbean>
  | </server>
  | 
  | 
  | 


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3965265#3965265

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3965265
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to