[jboss-user] [JBoss Cache: Core Edition] - How to control invalidation cache mode? is this a Jboss cach

hangzhouwestlake do-not-reply at jboss.com
Wed Jan 7 03:44:11 EST 2009


our Cluster has two physical servers, cache mode is set as invalidation and async
application is deployed on websphere 6.1 and windows XP and jboss cache 3
below is the Java code

method (){
  |    System.out.println("Cluster members:"+cache.getMembers());
  |    Object obj = cache.get(Fqn.fromString("/a"),"b");
  | 		if (obj == null) {
  | 			cache.put(Fqn.fromString("/a"),"b", "testdata");
  | 		}
  |    
  | 
  | } 

Below are steps to reproduce my issue, it caused cache invalidated loop, how to control avoid the cache invalidated loop?
appreciate for your help!


Step 1

start server 1 
and then start server 2 after 1 minutes


Step 2:

call method on server 1

below is the debug information in server 1 cache lisetner:
 node /a created;
 node /a modified;
 
 
step 3:

call method on server 2

Server Console print: Cluster members:[10.111.35.76:3918, 10.111.35.58:3525]

below is the debug information  in server 2 cache lisetner:

node /a created;
node /a modified;
 
 
below is the debug information in server 1 cache lisetner:
node /a invalidated

Step 4:
call method on server 1
Server Console print: Cluster members:[10.111.35.76:3918, 10.111.35.58:3525]
below is the debug information  in server 1 cache lisetner:
node /a created;
node /a modified;
 
below is the debug information in server 2 cache lisetner:
node /a invalidated

Step 5:
call method on server 2
Server Console print: Cluster members:[10.111.35.76:3918, 10.111.35.58:3525]
below is the debug information  in server 2 cache lisetner:
node /a created;
node /a modified;
 
below is the debug information in server 1 cache lisetner:
node /a invalidated

......


 
This is cache configuration xml:
 
 <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.0">
  |    <!--
  |       Used to enable invocation batching and allow the use of Cache.startBatch()/endBatch() methods.
  |    -->
  |    <invocationBatching
  |          enabled="true"/>
  |          
  |    <!--
  |       Used to register JMX statistics in any available MBean server
  |       -->
  |    <jmxStatistics
  |          enabled="false"/>
  |    <!-- Configure the TransactionManager -->
  |    <transaction transactionManagerLookupClass="org.jboss.cache.transaction.GenericTransactionManagerLookup"/>
  | 
  |    <clustering mode="invalidation">
  |       <!--
  |        timeout: The max amount of time (in milliseconds) we wait until the
  |              state (i.e. the contents of the cache) are retrieved from
  |              existing members in a clustered environment
  |       -->
  |       <stateRetrieval timeout="20000"/>
  | 
  |       <!-- JGroups protocol stack properties. -->
  |       <jgroupsConfig>
  |          <UDP discard_incompatible_packets="true" enable_bundling="true" enable_diagnostics="false" ip_ttl="2"
  |               loopback="false" max_bundle_size="64000" max_bundle_timeout="30" mcast_addr="228.10.10.10"
  |               mcast_port="45588" mcast_recv_buf_size="100000000" mcast_send_buf_size="640000"
  |               oob_thread_pool.enabled="true" oob_thread_pool.keep_alive_time="10000" oob_thread_pool.max_threads="20"
  |               oob_thread_pool.min_threads="8" oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="10"
  |               oob_thread_pool.rejection_policy="Run" thread_naming_pattern="pl" thread_pool.enabled="true"
  |               thread_pool.keep_alive_time="10000" thread_pool.max_threads="15" thread_pool.min_threads="8"
  |               thread_pool.queue_enabled="true" thread_pool.queue_max_size="100000"
  |               thread_pool.rejection_policy="Discard"
  |               tos="8" ucast_recv_buf_size="20000000" ucast_send_buf_size="640000" use_concurrent_stack="true"
  |               use_incoming_packet_handler="true"/>
  |          <PING num_initial_members="3" timeout="2000"/>
  |          <MERGE2 max_interval="30000" min_interval="10000"/>
  |          <FD_SOCK/>
  |          <FD max_tries="5" shun="true" timeout="10000"/>
  |          <VERIFY_SUSPECT timeout="1500"/>
  |          <pbcast.NAKACK discard_delivered_msgs="true" gc_lag="0" retransmit_timeout="300,600,1200,2400,4800"
  |                         use_mcast_xmit="true"/>
  |          <UNICAST timeout="300,600,1200,2400,3600"/>
  |          <pbcast.STABLE desired_avg_gossip="50000" max_bytes="400000" stability_delay="1000"/>
  |          <pbcast.GMS join_timeout="5000" print_local_addr="true" shun="false" view_ack_collection_timeout="5000"
  |                      view_bundling="true"/>
  |          <FC max_credits="500000" min_threshold="0.2"/>
  |          <FRAG2 frag_size="60000"/>
  |          <pbcast.STREAMING_STATE_TRANSFER/>
  |          <pbcast.FLUSH timeout="0"/>
  |       </jgroupsConfig>
  | 
  |       <async />
  |       <!-- Alternatively, to use sync replication, comment out the element above and uncomment the element below.  -->
  |       <!-- <sync /> -->
  |       
  |    </clustering>
  |  
  |  

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4199984



More information about the jboss-user mailing list