geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lin Sun (JIRA)" <j...@apache.org>
Subject [jira] Created: (GERONIMO-4466) Improve exception during transaction manager commit when there are multiple XAResources
Date Fri, 12 Dec 2008 21:10:44 GMT
Improve exception during transaction manager commit when there are multiple XAResources
---------------------------------------------------------------------------------------

                 Key: GERONIMO-4466
                 URL: https://issues.apache.org/jira/browse/GERONIMO-4466
             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


When tm.commit is invoked and there are multiple XAResources enlisted.  if there are one or
more XAExceptions arisen from one or more of these XAResources during commit, the code simply
throws SystemException.  I propose the following updates to provide more detailed exceptions:

1. If the XAException is XAException.XA_HEURRB from one XAResource and there is no other exceptions
from other XAResources, we throw HeuristicMixedException (because there are heuristic conditions
and some are committed some are rolled back), and call the XAResource to forget.
2. If all XAResources report XAException.XA_HEURRB, we throw HeuristicRollbackException, and
call the these XAResources to forget
3. If the XAException is XAException.XA_HEURRB from one or more XAResources however one or
more XAResource are able to commit something (either no exception during commit, or throw
XAException.XA_HEURMIX /XAException.XA_HEURCOM to indicate something gets committed), we throw
HeuristicMixedException, and call the XAResources to forget.
2. If the XAException is XAException.XA_HEURMIX from one XAResource, and no matter what other
heuristic exceptions reported by other XAResources, we throw HeuristicMixedException, and
call the 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.

Comments welcome.

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


Mime
View raw message