Two Phase Commit & Abend States
In a distributed setting that a several new conditions a transaction might be in when a failure occurs...
- INFLIGHT -- The participant or coordinator failed before finishing Phase 1 commit; during restart, both systems back out the updates.
- INDOUBT --
The participant failed after finishing Phase 1 and before starting Phase 2; only the coordinator knows whether the failure happened before or after the commit. If it happened before, the participant must back out its changes; if it happened afterward, it must make its changes and commit them. After restart, the participant waits for information from the coordinator before processing this unit of recovery.
- INCOMMIT --
The participant failed after it began its own phase 2 processing; it makes committed changes.
- INABORT -- The participant or coordinator failed after a unit of recovery began to be rolled back but before the process was complete (not shown in the figure). The operational system rolls back the changes; the failed system continues to back out the changes after restart.
- COMPLETED commit/abort --
DB2 fails after completion of "end phase 2 commit". During DB2 restart all data updates will be reapplied and externalized.
- POSTPONED ABORT --
If the LIMIT BACKOUT installation option is set to YES or AUTO, any back out not completed during restart is postponed. The status of the incomplete URs is changed from INFLIGHT or INABORT to POSTPONED ABORT