[ 
https://issues.apache.org/jira/browse/GERONIMO-4466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lin Sun updated GERONIMO-4466:
------------------------------

    Affects Version/s: 2.1.4
        Fix Version/s: 2.1.4

> 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.1.4, 2.2
>            Reporter: Lin Sun
>            Assignee: Lin Sun
>             Fix For: 2.1.4, 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