Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-4471

improve heuristic exception handling in rollback when txmanager.commit is called

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.1.4, 2.2
    • 2.1.4, 2.2
    • transaction manager
    • Security Level: public (Regular issues)
    • None

    Description

      Improve heuristic exception handling during rollback, when txmanager.commit is called by providing a rollbackResourcesDuringCommit method to throw appropriate heuristic exceptions. The logic is:

      1. If XAException.XA_HEURRB arisen from XAResource rollback, this means transaction has been heuristically rolled back, thus we just throw normal RollbackException.
      2. If XAException.XA_HEURMIX arisen from XAResource rollback, this means transaction has been heuristically rolled back and committed, thus we just throw HeuristicMixedException.
      3. If XAException.XA_HEURCOM arisen from XAResource rollback, this means transaction has been heuristically committed. In this case, if transaction has ever been committed (via other XAResources enlisted), then we throw HeuristicMixedException.
      4. Other XAExceptions, throw SystemExceptions.
      5. If no specific XAException or only XAException.XA_HEURRB, throw RollbackException.

      The rollbackResourcesDuringCommit method will be used during the commit context instead of the current rollbackResources method.

      Attachments

        Activity

          People

            linsun Lin Sun
            linsun Lin Sun
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: