[jbosscache-dev] Re: DummyTransaction and DumyTransactionManager
Manik Surtani
manik at jboss.org
Thu Aug 23 12:52:49 EDT 2007
Ok, managed to get this in a unit test by subclassing the
DummyTransaction and DummyTransactionManager classes to force a
STATUS_UNKNOWN when calling afterCompletion().
On 23 Aug 2007, at 14:00, Jonathan Halliday wrote:
>
> Nope, not if the failure occurs in phase two. In that case you get
> heuristics, which the TS knows about internally but for which JTA
> has no Status. Hence we use STATUS_UNKNOWN.
>
> Jonathan.
>
>
> Manik Surtani wrote:
>> 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
>
>
> --
> ------------------------------------------------------------
> 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