Well, good / bad news here...
The good news is that by upgrading to Hibernate 3.2 CR 1 and using the
OptimisticTreeCacheProvider instead of the default TreeCacheProvider, we were
able to get past the basic issue of puts not taking effect in the cache (which
was the root of issue #2 described below).
The bad news is that we get a variety of new exceptions like the following:
| 156000 [PoolThread-48] WARN org.jboss.cache.interceptors.TxInterceptor -
Rolling back, exception encountered
| java.lang.RuntimeException:
| at
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1033)
| at
org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:72)
| at
org.objectweb.jotm.SubCoordinator.doBeforeCompletion(SubCoordinator.java:1443)
| at
org.objectweb.jotm.SubCoordinator.commit_one_phase(SubCoordinator.java:407)
| at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:224)
| at org.objectweb.jotm.Current.commit(Current.java:475)
| at
org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:325)
| .....
| Caused by: org.jboss.cache.CacheException: unable to validate nodes
| at
org.jboss.cache.interceptors.OptimisticValidatorInterceptor.validateNodes(OptimisticValidatorInterceptor.java:109)
| at
org.jboss.cache.interceptors.OptimisticValidatorInterceptor.invoke(OptimisticValidatorInterceptor.java:64)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:67)
| at
org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:87)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:67)
| at
org.jboss.cache.interceptors.InvalidationInterceptor.invoke(InvalidationInterceptor.java:54)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:67)
| at
org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:753)
| at
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1011)
| ... 49 more
|
followed immediately by many write lock exceptions:
| 171000 [PoolThread-49] ERROR org.jboss.cache.lock.IdentityLock - write
lock for /com/inventive/altona/orm/School could not be acquired after 15000 ms.
Locks: Read lock owners: {}
| Write lock owner: GlobalTransaction:<10.40.58.21:3438>:1199
| (caller=GlobalTransaction:<10.40.58.21:3438>:1207, lock info: write
owner=GlobalTransaction:<10.40.58.21:3438>:1199 (activeReaders=0,
activeWriter=PoolThread-48, waitingReaders=0, waitingWriters=1,
waitingUpgrader=0))
| 171000 [PoolThread-49] WARN org.jboss.cache.interceptors.TxInterceptor -
Rolling back, exception encountered
| java.lang.RuntimeException:
| at
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1033)
| at
org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:72)
| at
org.objectweb.jotm.SubCoordinator.doBeforeCompletion(SubCoordinator.java:1443)
| at
org.objectweb.jotm.SubCoordinator.commit_one_phase(SubCoordinator.java:407)
| at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:224)
| at org.objectweb.jotm.Current.commit(Current.java:475)
| at
org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:325)
| at
org.jboss.cache.interceptors.TxInterceptor.invoke(TxInterceptor.java:136)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:67)
| at
org.jboss.cache.interceptors.CacheMgmtInterceptor.invoke(CacheMgmtInterceptor.java:153)
| at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:4786)
| at org.jboss.cache.TreeCache.put(TreeCache.java:3224)
| at org.jboss.cache.TreeCache.put(TreeCache.java:2919)
| at
org.hibernate.cache.OptimisticTreeCache.writeLoad(OptimisticTreeCache.java:95)
| .....
| Caused by: org.jboss.cache.lock.TimeoutException: write lock for
/com/inventive/altona/orm/School could not be acquired after 15000 ms. Locks:
Read lock owners: {}
| Write lock owner: GlobalTransaction:<10.40.58.21:3438>:1199
| (caller=GlobalTransaction:<10.40.58.21:3438>:1207, lock info: write
owner=GlobalTransaction:<10.40.58.21:3438>:1199 (activeReaders=0,
activeWriter=PoolThread-48, waitingReaders=0, waitingWriters=1,
waitingUpgrader=0))
| at
org.jboss.cache.lock.IdentityLock.acquireWriteLock(IdentityLock.java:185)
| at org.jboss.cache.Node.acquireWriteLock(Node.java:557)
| at org.jboss.cache.Node.acquire(Node.java:517)
| at
org.jboss.cache.interceptors.OptimisticLockingInterceptor.lockNodes(OptimisticLockingInterceptor.java:141)
| at
org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:68)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:67)
| at
org.jboss.cache.interceptors.InvalidationInterceptor.invoke(InvalidationInterceptor.java:54)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:67)
| at
org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:753)
| at
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1011)
| ... 49 more
|
In addition, it appears as though using the INVALIDATION_ASYNC actually causes
all other nodes' caches to be emptied (invalidated) when one node's cache is
written to with a put.
Does anyone have any advice or anything I can try?
Thanks!
Aaron
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3933880#3933880
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3933880
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user