[jbosscache-dev] Re: DummyTransaction and DumyTransactionManager

Manik Surtani manik at jboss.org
Thu Aug 23 08:57:24 EDT 2007


How, then, does a STATUS_UNKNOWN come about?

Any failure before afterCompletion() sequences commence (i.e., in  
beforeCompletion()) should result in a rollback, right?

On 23 Aug 2007, at 11:09, Jonathan Halliday wrote:

>
> No, the status is determined before any of the afterCompletions run  
> and does not change. An afterCompletions success/failure does not  
> change the transaction outcome. They are in effect receiving  
> notification of an earlier event and the notifications are  
> independent, may happen in arbitrary order or even in parallel.  
> Well, aside from the use of TransactionSynchronizationRegistry, but  
> that's another story.
>
> Jonathan.
>
> Manik Surtani wrote:
>> Ok, then the DummyTM's current behaviour of swallowing exceptions  
>> in afterCompletion() is correct?
>> What about the status that gets passed into subsequent Syncs after  
>> an exception is encountered?  I'd expect something like (pseudocode):
>> int status = getStatusFromBeforeCompletion();
>> for (Synchronization s : syncs)
>> {
>>     try
>>     {
>>         s.afterCompletion(status);
>>     }
>>     catch (Exception e)
>>     {
>>         log(e);
>>         status = STATUS_UNKNOWN; // so subsequent Syncs get this  
>> status
>>     }
>> }
>
> -- 
> ------------------------------------------------------------
> Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod  
> Street, Windsor, Berkshire, SI4 1TE, United Kingdom.
> Registered in UK and Wales under Company Registration No. 3798903   
> Directors: Michael Cunningham (USA), Charlie Peters (USA) and David  
> Owens (Ireland)

--
Manik Surtani

Lead, JBoss Cache
JBoss, a division of Red Hat






More information about the jbosscache-dev mailing list