Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-1155

Remember where we are in the commit list for recovery

    XMLWordPrintable

Details

    • Hide

      Have a transaction with multiple participants. Have one of those participants return XA_RETRY on commit. Upon recovery, have it return a heuristic rollback the next time it is told to commit. Without a fix the transaction will rollback and no heuristic will be indicated. With a fix it should show the heuristic.

      Show
      Have a transaction with multiple participants. Have one of those participants return XA_RETRY on commit. Upon recovery, have it return a heuristic rollback the next time it is told to commit. Without a fix the transaction will rollback and no heuristic will be indicated. With a fix it should show the heuristic.

    Description

      We keep track of where the coordinator is in the list of resources to commit during doCommit, so that we can avoid heuristics as much as possible. Basically we need to remember if we have gotten past the first participant. However, we do not remember this value (boolean) as part of the transaction state. This means that upon recovery there is a chance that a participant that failed to commit the first time round and then causes a heuristic rollback subsequently, will cause the transaction silently mask the heuristic and roll back all of the other participants, delete the log and report a normal transaction abort state. In fact it should ensure the heuristic is raised.

      Attachments

        Activity

          People

            nmcl2001 Mark Little
            nmcl2001 Mark Little
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: