1.3.4.3 Transaction Manager Recovery

Transaction Manager recovery is dual-faceted. The recovering transaction manager will attempt to recover those transactions for which it is acting as a superior transaction manager facet and those for which it is acting as a subordinate transaction manager facet.

The typical sequence for a superior transaction manager facet to perform recovery is the following:

  1. The superior transaction manager determines the list of transactions for which it is in the Failed to Notify state. These are the transactions whose outcome has been decided but for which there exists at least one durable subordinate participant whose receipt of that outcome cannot be verified.

  2. For each of these transactions, the superior transaction manager attempts to perform recovery by contacting all subordinate transaction managers whose receipt of outcome cannot be verified to redeliver the transaction outcome.

The typical sequence for a subordinate transaction manager facet to perform recovery is the following:

  1. The subordinate transaction manager determines the list of transactions for which it is in the In Doubt state.

  2. For each of these transactions, the subordinate transaction manager attempts to contact the superior transaction manager to determine the transaction outcome.

  3. For each In Doubt transaction whose transaction outcome is now known, the subordinate transaction manager proceeds to communicate the outcome to its own subordinate transaction managers.