[jboss-user] [JBossCache] - Possible misunderstandig of the optimistic locking

JL do-not-reply at jboss.com
Thu Sep 21 05:00:42 EDT 2006


Hallo,

after many trys to run the cluster under pessimistic locking, we want to change to optimistic locking.
Our cache has a lot of node like 

/sentinel/[sessionId]

and /sentinel_Commands/[sessionId]

where [sessionId] is a unique identifier of an user. So the number of this

Fqn will scale with the number of logged in users. 

All this nodes will be changed frequently. When I use the optimistic locking 
I got the following exception during the commit phase and I'm mostly surprised about the line:

Caused by: org.jboss.cache.CacheException: DataNode [/] version Ver=74 is newer than workspace node Ver=73

Means this each change on a sub node will also increase the version of the root node and the commit phase will only work if there was no change in the complete treecache?

How it's possible that a commit works than if many cluster nodes  will do changes on different (sub)nodes in the tree cache?





2006-09-21 09:52:23,321 [SentinelServerAgent_105] ERROR org.jboss.cache.transaction.DummyTransaction - beforeCompletion() failed for tx=org.jboss.cache.transaction.DummyTransaction at f91da9, handlers=[TxInterceptor.LocalSynchronizationHandler(gtx=GlobalTransaction:<192.168.4.174:7800>:78, tx=org.jboss.cache.transaction.DummyTransaction at f91da9)]
 java.lang.RuntimeException: 
	at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1091)
	at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75)
	at org.jboss.cache.transaction.DummyTransaction.notifyBeforeCompletion(DummyTransaction.java:247)
	at org.jboss.cache.transaction.DummyTransaction.commit(DummyTransaction.java:54)
	at org.jboss.cache.transaction.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:61)
	at com.xtramind.common.distributed.DefaultDistributedResourceAgent.putData(DefaultDistributedResourceAgent.java:526)
	at com.xtramind.common.distributed.DefaultDistributedResourceManager.putData(DefaultDistributedResourceManager.java:167)
	at com.xtramind.common.sentinel.server.DefaultSentinelServerAgent.addCommand(DefaultSentinelServerAgent.java:805)
	at com.xtramind.common.sentinel.server.DefaultSentinelServerAgent.answerToServerPing(DefaultSentinelServerAgent.java:255)
	at com.xtramind.common.sentinel.server.DefaultSentinelServerAgent.run(DefaultSentinelServerAgent.java:320)
	at java.lang.Thread.run(Thread.java:595)
Caused by: org.jboss.cache.CacheException: DataNode [/] version Ver=74 is newer than workspace node Ver=73
	at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.simpleValidate(OptimisticValidatorInterceptor.java:127)
	at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.validateNodes(OptimisticValidatorInterceptor.java:101)
	at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.invoke(OptimisticValidatorInterceptor.java:66)
	at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
	at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:95)
	at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
	at org.jboss.cache.interceptors.OptimisticReplicationInterceptor.invoke(OptimisticReplicationInterceptor.java:74)
	at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
	at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:804)
	at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1069)



Thanks for help

JL

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

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



More information about the jboss-user mailing list