| Previous | Next |
| XACT_E_HEURISTICABORT | XACT_E_HEURISTICDAMAGE |
XACT_E_HEURISTICCOMMIT
Heuristic commit can leave durable changes after the global transaction failed
XACT_E_HEURISTICCOMMIT indicates that a resource manager committed its branch on its own when coordinated processing expected abort or could no longer confirm the outcome. The local data is durable, but atomicity across the full transaction may have been violated.
Identify whether other participants aborted and avoid automatically replaying the original request, which can duplicate the heuristically committed change. Reconciliation should use the global transaction ID and application business key to decide whether to compensate the committed branch or reproduce the missing work elsewhere. Keep the resource’s heuristic state and coordinator logs until the final business correction is recorded.
Facts needed before compensation
- Local commit record and branch identifier.
- Global coordinator decision or unresolved status.
- Outcome of every other durable participant.
- Idempotency key or business identifier for corrective action.
References
- Microsoft MS-DTCO: coordinated commit and abort orders
- The Open Group: heuristic commit semantics
- PostgreSQL: commit and rollback of prepared branches
Looking for a different code? Search another status or error code.
