geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Jencks (JIRA)" <>
Subject [jira] Commented: (GERONIMO-4461) Improve exception during transaction manager one phase commit
Date Wed, 10 Dec 2008 23:00:48 GMT


David Jencks commented on GERONIMO-4461:

We might seek more guidance from experts on this, but I would think that we don't want to
automatically forget anything associated with a tx that is completed heuristically.  That
means that something went very seriously wrong and IMO we shouldn't erase any info that bears
on it -- hopefully someone will be along soon to try to figure out what happened.

For XAException.XA_HEURCOM, doesn't that mean that the tm could not figure out if some of
the resource managers committed, but committed all the ones it could?  If so, the state of
at least one resource manager is unknown so we should definitely inform the tx originator.

As far as your proposed tx mapping, it looks good to me.

Also I don't think there are any cases right now where we would get a heuristic exception
here.... that would mean the single resource is a remote tm, something that we don't support
directly ourselves at the moment.

> Improve exception during transaction manager one phase commit
> -------------------------------------------------------------
>                 Key: GERONIMO-4461
>                 URL:
>             Project: Geronimo
>          Issue Type: Improvement
>      Security Level: public(Regular issues) 
>          Components: transaction manager
>    Affects Versions: 2.2
>            Reporter: Lin Sun
>            Assignee: Lin Sun
>             Fix For: 2.2
> Currently,  during transaction manager one phase commit, if there is XAException arise
from XAResource.commit, the code just throws RollbackException.
> We should provide a more detailed Exceptions, that is:
> 1. If the XAException is XAException.XA_HEURRB, we throw HeuristicRollbackException,
and call XAResource to forget
> 2. If the XAException is XAException.XA_HEURMIX, we throw HeuristicMixedException, and
call XAResource to forget
> 3. If the XAException is XAException.XA_HEURCOM, we don't need to inform the transaction
originator, but we want to call XAResource to forget.
> 4. Other XAException, throw RollbackException, same as the current code.
> Thoughts?
> Lin

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message