anonymous wrote :
| ... it would have the effect of treating Hibernate's afterCompletion()
call as occuring outside the tx scope, which AFAICT is Hibernate's intent.
|
Yes, this is why I sent a mail to the hibernate dev mail list to clarify the
intention here. If it is to run outside the current tx, this should be done
explicitly. Just nullifying the tx (as per the code snippet commented out)
leads to other errors (when using optimistic locking, for example - guarded by
the test in invoke()).
I was speaking with Kevin Conner about this earlier as well, and doing a
cleanup like this in aftercompletion may lead to deadlocks too, if for example,
the synchronizations haven't had a chance to release locks yet and a call to
remove() blocks.
I think the Hibernate usage here is incorrect as it assumes that the cache is
not transactional. Perfectly acceptable for their other cache impls, but not
very good for JBoss Cache. This remove() should not happen in the
afterCompletion() block but in a finally{} block after the tx commits/rolls
back.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4028406#4028406
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4028406
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user