On 2 Jun 2011, at 13:19, Scott Marlow wrote: > On 06/02/2011 05:31 AM, Mircea Markus wrote: >> >> On 1 Jun 2011, at 20:49, Scott Marlow wrote: >> >>> I posted a message on the as7-dev ml >>> (http://lists.jboss.org/pipermail/jboss-as7-dev/2011-May/002254.html), >>> about switching to use the TransactionSynchronizationRegistry. >>> >>> Does Infinispan currently register Transaction synchronization objects? >> yes >>> Does Infinispan currently register synchronizations via >>> TransactionSynchronizationRegistry (TSR)? >> no, we register synchronizations through transaction.registerSynchronization >>> >>> I'm trying to get a sense for, what would happen if container managed >>> (AS7) session beans were registered with the active JTA transaction via >>> the TSR. >>> >>> If AS7 switches to use the TSR, I think that Infinispan might need to >>> ensure that it doesn't attempt to register with the TX too late. >> right. One way to go is by making the registration code pluggable. > > I should point out that I believe its only a problem, to call > Transaction.registerSynchronization() after the point, where the ordering > cannot be correct. However, no such checking is performed if no components > are registering their syncs via TransactionSynchronizationRegistry. > > So, another question, how likely would it be, that an application would see > Infinispan registering a sync via Transaction.registerSynchronization(), > after the transaction commit has been initiated? ATM Infinispan allows the registration if the transaction is in one of the following states: Status.STATUS_ACTIVE || Status.STATUS_PREPARING. If tx is in any other state the sync won't be registered and a exception is instead sent to the user. > > If Transaction.registerSynchronization() will always be called by Infinispan > before the transaction commits. We shouldn't have to be as concerned about > support for registering the Infinispan syncs with > TransactionSynchronizationRegistry.
> > If the answer is we aren't sure or Transaction.registerSynchronization() > could happen after the transaction commit has been started, we should have it > be pluggable. From Jonathan's comment[1] I understand that "interposed Synchronizations must be called after non-interposed ones". That seems to be true disregarding tx's status. Or am I wrong? [1] http://bit.ly/lAJKvm
_______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev