You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-users@jakarta.apache.org by Avanti Nagalia <AN...@manh.com> on 2009/07/10 22:16:57 UTC

RemoveUponRemotePut not working.

I'm trying a POC for synching local caches in a cluster. I'm using JCS
Remote Cache server for the same. I have set up the server in Tomcat on
my local box and am running two clients on my local machine as well. I
would like to enable data invalidation instead of data replication
across the clients, hence have set the property RemoveUponRemotePut to
true. What I understand from this property is that if a cache element is
present on both clients and client1 updates its local copy, then a
remove request will be issued for client2 so that the next request for
that element will force client2 to go to the DB to retrieve a fresh copy
of the element, hence maintaining cache coherence across the cluster.

 

What I have instead found, is that irrespective of whether
RemoveUponRemotePut is set to true or false, the behavior is as follows:

1.       Add element to Client1 .

2.       Add element to Client2.

3.       Update element in Client1.

Result - The element in Client2 also gets updated with the new value. -
This is not desired, I'd like the element to be removed from Client2's
cache at this point, instead of the element being replicated in
client2's cache.

 

My configuration files (both server and client) are listed below. Could
you please point out what I'm making a mistake with. I tried setting the
value to true and to false and I still get the same behavior for both
settings.

 

Thanks,

Avanti

 

My client CCF file looks as follows:

# DEFAULT CACHE REGION

jcs.default=RFailover

jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttribut
es

jcs.default.cacheattributes.MaxObjects=100000

jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory
.lru.LRUMemoryCache

jcs.default.cacheattributes.UseMemoryShrinker=false

jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.default.cacheattributes.ShrinkerIntervalSeconds=60

jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes

jcs.default.elementattributes.IsEternal=false

jcs.default.elementattributes.MaxLifeSeconds=21600

jcs.default.elementattributes.IdleTime=1800

jcs.default.elementattributes.IsSpool=false

jcs.default.elementattributes.IsRemote=false

jcs.default.elementattributes.IsLateral=false

 

# PRE-DEFINED CACHE REGIONS

jcs.region.testCache1=RFailover

jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCac
heAttributes

jcs.region.testCache1.cacheattributes.MaxObjects=100000

jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.eng
ine.memory.lru.LRUMemoryCache

jcs.region.testCache1.cacheattributes.UseMemoryShrinker=false

jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60

jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500

jcs.region.testCache1.elementattributes=org.apache.jcs.engine.ElementAtt
ributes

jcs.region.testCache1.elementattributes.IsEternal=false

 

# Remote RMI Cache set up to failover

jcs.auxiliary.RFailover=org.apache.jcs.auxiliary.remote.RemoteCacheFacto
ry

jcs.auxiliary.RFailover.attributes=org.apache.jcs.auxiliary.remote.Remot
eCacheAttributes

jcs.auxiliary.RFailover.attributes.FailoverServers=localhost:1111

jcs.auxiliary.RFailover.attributes.RemoveUponRemotePut=true

jcs.auxiliary.RFailover.attributes.GetOnly=false

 

The server's cache.ccf file looks as follows:

registry.host=localhost

registry.port=1111

remote.cache.service.port=1111

remote.cache.rmiSocketFactoryTimeoutMillis=5000

remote.cluster.LocalClusterConsistency=false

remote.cluster.AllowClusterGet=false

#

# DEFAULT CACHE REGION

jcs.default=

jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttribut
es

jcs.default.cacheattributes.MaxObjects=1000

jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory
.lru.LRUMemoryCache

jcs.default.cacheattributes.UseMemoryShrinker=false

jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.default.cacheattributes.ShrinkerIntervalSeconds=60

jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes

jcs.default.elementattributes.IsEternal=false

jcs.default.elementattributes.MaxLifeSeconds=21600

jcs.default.elementattributes.IdleTime=1800

jcs.default.elementattributes.IsSpool=false

jcs.default.elementattributes.IsRemote=false

jcs.default.elementattributes.IsLateral=false

#

# PRE-DEFINED CACHE REGIONS

jcs.region.testCache1=

jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCac
heAttributes

jcs.region.testCache1.cacheattributes.MaxObjects=1000

jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.eng
ine.memory.lru.LRUMemoryCache

jcs.region.testCache1.cacheattributes.UseMemoryShrinker=false

jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60

jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500

jcs.region.testCache1.elementattributes=org.apache.jcs.engine.ElementAtt
ributes

jcs.region.testCache1.elementattributes.IsEternal=false

jcs.region.testCache1.elementattributes.IsSpool=false

jcs.region.testCache1.elementattributes.IsRemote=false

jcs.region.testCache1.elementattributes.IsLateral=false

jcs.region.testCache1.elementattributes.IdleTime=1800

jcs.region.testCache1.elementattributes.MaxLifeSeconds=21600