FYI; just posted on the EJB3 forum.
bstansberry(a)jboss.com wrote:
There appears to be a difference in behavior between JBossTM and
JBossTS that's leading to failures with JBoss Cache as the 2nd level
entity cache.
JBC handles replication of transaction-scoped cache changes by
registering as a transaction Synchronization and replicating the
changes during the beforeCompletion() callback. This is failing with
JBossTS because the beforeCompletion() callback is being executed
*before* the Hibernate flush activity that updates the cache. No
activity at time of beforeCompletion() == no replication of the tx's
changes.
2006-11-16 23:48:41,250 TRACE
[org.jboss.cache.interceptors.TxInterceptor] Running beforeCompletion
on gtx GlobalTransaction:<192.168.1.164:2668>:1 2006-11-16
23:48:41,250 TRACE [org.jboss.cache.interceptors.TxInterceptor]
Setting up transactional context. 2006-11-16 23:48:41,250 TRACE
[org.jboss.cache.interceptors.TxInterceptor] Setting tx as
TransactionImple < ac, BasicAction: -3f57ff9b:a5b:455d4cd6:10 status:
0 > and gtx as GlobalTransaction:<192.168.1.164:2668>:1 2006-11-16
23:48:41,250 TRACE [org.jboss.cache.interceptors.TxInterceptor] No
modifications in this tx. Skipping beforeCompletion() 2006-11-16
23:48:41,250 DEBUG
[org.hibernate.event.def.AbstractFlushingEventListener] processing
flush-time cascades 2006-11-16 23:48:41,250 DEBUG
[org.hibernate.event.def.AbstractFlushingEventListener] dirty
checking collections 2006-11-16 23:48:41,265 DEBUG
[org.hibernate.engine.Collections] Collection found:
[org.jboss.ejb3.test.clusteredentity.Customer.contacts#1], was: []
(initialized) 2006-11-16 23:48:41,265 DEBUG
[org.hibernate.event.def.AbstractFlushingEventListener] Flushed: 3
insertions, 0 updates, 0 deletions to 3 objects 2006-11-16
23:48:41,265 DEBUG
[org.hibernate.event.def.AbstractFlushingEventListener] Flushed: 1
(re)creations, 0 updates, 0 removals to 1 collections ...
followed by puts into the cache
When I switched the AS back to using JBossTM, the problem went away
-- the Hibernate flush activity occurred first, and then the
beforeCompletion() call to JBC.
I'm speculating that Hibernate is also using a Synchronization to
manage the flush, and that JBossTA and JBossTS make the calls to
registered Synchronizations in a different order.
At this point, replication of clustered EJB3 entities is basically
broken.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3986745#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...
5
_______________________________________________
jboss-dev-forums mailing list
jboss-dev-forums(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-dev-forums