[ 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.