| Previous | Next |
| FSRM_E_MODULE_TIMEOUT | XACT_E_CANTRETAIN |
XACT_E_ALREADYOTHERSINGLEPHASE
Only one participant can receive delegated single-phase authority
XACT_E_ALREADYOTHERSINGLEPHASE means the transaction already has a resource manager designated for the single-phase commit optimization. That optimization is available only when the coordinator can delegate the final outcome to one suitable Phase One participant; allowing two independent resources to decide would destroy atomic agreement.
Inspect the enlistment order and the flags used by each resource manager. A component that merely prefers one-phase completion must still accept normal prepare and Phase Two notifications when another durable participant has claimed the optimization. Do not solve this by suppressing the second enlistment if it protects real durable work; make both resources participate in ordinary two-phase commit instead.
Evidence that identifies the competing enlistments
- Resource-manager identifiers and enlistment sequence.
- Which participant requested or accepted single-phase commit.
- Whether an unexpected durable resource was promoted into the transaction.
- Prepare and single-phase callback results recorded by both resource managers.
References
- Microsoft MS-DTCO: single-phase commit rules
- Microsoft: resource-manager enlistment contract
- The Open Group: XA distributed transaction model
Looking for a different code? Search another status or error code.
