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.

Reply via email to