I'm rather stumped by this problem.  I've implemented POJO Cache (1.3.0 SP2) 
standalone within Resin app server.  
I have two servers (ServerA and ServerB) within the same subnet that each start 
a TreeCacheAOP instance upon server startup and add a POJO to the TreeCache as 
such:

*****

  | // Configure and start the TreeCache
  | cache = new TreeCacheAop();
  | 
  | PropertyConfigurator config = new PropertyConfigurator();
  | config.configure(cache, "./WEB-INF/replSync-service.xml");
  | 
  | cache.start();
  | 
  | MerchantDailyAccount mda = new MerchantDailyAccount();
  | mda.setDailySpend(128.00F);
  | 
  | cache.putObject("/test/dailySpend", mda);
  | 
*******

Let's say that ServerA starts up first and adds a MerchantDailyAccount object 
to the cache (as shown above) with a 'dailySpend' value of 128.00.
When ServerB starts up, it also adds a MerchantDailyAccount object to the cache 
with the same 'dailySpend' value (128.00) and replicates the object across back 
the network to ServerA (I see it in the logs).

The problem is that when I inspect the cached MerchantDailyAccount objects on 
ServerA and ServerB, I see the following:


        ServerA:  MerchantDailyAccount.dailySpend = 1.00   (its initial value 
defined within the POJO)
        ServerB:  MerchantDailyAccount.dailySpend = 128.00 (the correct value)


Somehow, the 'dailySpend' value on ServerA has gotten overwritten and reverted 
to its initial state.  
Here's where it gets even stranger.  If I then retrieve the cached 
MerchantDailyAccount object from ServerA and increment
its value by 0.50, I will see the following:


        ServerA:  MerchantDailyAccount.dailySpend = 128.50   (the correct value)
        ServerB:  MerchantDailyAccount.dailySpend = 128.00   (should see 
128.50, as on ServerA)


In the logs on ServerB, I see the replication transaction being sent from 
ServerA attempting to update the value of 'dailySpend' to 128.50 on ServerB.

I've poured over the logs on both servers and don't see any errors that would 
indicate that the replication event failed (in fact there are no
ERROR messages recorded in the logs on either server).  I see the correct 
values being passed back and forth between the two servers, but it 
just doesn't look like the values 'stick' in the server being replicated to.  
Its almost like the transaction isn't being effectively committed until I 
access and change the value in the object replicated to.

Has anyone seen this before or have any idea what might be causing this.  I've 
included my XML configuration below, in case its helpful.  Thank you 
for your help!

Michael



  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <server>
  | 
  |     <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
  | 
  |     <mbean code="org.jboss.cache.TreeCache"
  |         name="jboss.cache:service=TreeCache">
  | 
  |         <depends>jboss:service=Naming</depends>
  |         <depends>jboss:service=TransactionManager</depends>
  | 
  |         <attribute 
name="TransactionManagerLookupClass">org.jboss.cache.GenericTransactionManagerLookup</attribute>
  | 
  |         <attribute name="NodeLockingScheme">PESSIMISTIC</attribute>
  | 
  |         <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
  | 
  |         <attribute name="CacheMode">REPL_SYNC</attribute>
  | 
  |         <attribute name="UseReplQueue">false</attribute>
  | 
  |         <attribute name="ReplQueueInterval">0</attribute>
  | 
  |         <attribute name="ReplQueueMaxElements">0</attribute>
  | 
  |         <attribute name="ClusterName">GiftsCom-TreeCache-Cluster</attribute>
  | 
  |         <attribute name="ClusterConfig">
  |             <config>
  |                 <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"
  |                     up_thread="false" down_thread="false"/>
  |                 <MERGE2 min_interval="10000" max_interval="20000"/>
  |                 <FD_SOCK/>
  |                 <VERIFY_SUSPECT timeout="1500"
  |                     up_thread="false" down_thread="false"/>
  |                 <pbcast.NAKACK gc_lag="50" 
retransmit_timeout="600,1200,2400,4800"
  |                     max_xmit_size="8192" up_thread="false" 
down_thread="false"/>
  |                 <UNICAST timeout="600,1200,2400" window_size="100" 
min_threshold="10"
  |                     down_thread="false"/>
  |                 <pbcast.STABLE desired_avg_gossip="20000"
  |                     up_thread="false" 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="true" down_thread="true"/>
  |             </config>
  |         </attribute>
  | 
  |         <attribute name="FetchInMemoryState">false</attribute>
  | 
  |         <attribute name="InitialStateRetrievalTimeout">20000</attribute>
  | 
  |         <attribute name="SyncReplTimeout">20000</attribute>
  | 
  |         <attribute name="LockAcquisitionTimeout">15000</attribute>
  | 
  |         <attribute 
name="EvictionPolicyClass">org.jboss.cache.eviction.AopLRUPolicy</attribute>
  |         
  |         <attribute name="EvictionPolicyConfig">
  |            <config>
  |               <attribute name="wakeUpIntervalSeconds">5</attribute>
  |               <region name="/_default_">
  |                   <attribute name="maxNodes">5000</attribute>
  |                   <attribute name="timeToLiveSeconds">1000</attribute>
  |               </region>
  |               <region name="/test/">
  |                   <attribute name="maxNodes">10000</attribute>
  |                   <attribute name="timeToLiveSeconds">5</attribute>
  |               </region>
  |            </config>
  |         </attribute>
  | 
  |         <attribute name="UseMarshalling">true</attribute>
  | 
  |     </mbean>
  | 
  | </server>

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

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

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to