| Previous | Next |
| XACT_E_NOISORETAIN | XACT_E_NOTCURRENT |
XACT_E_NORESOURCE
An enlistment handle is meaningful only while its resource remains registered
XACT_E_NORESOURCE indicates that an enlistment operation was attempted after its resource manager was removed, disconnected, or otherwise no longer associated with that enlistment. This differs from a transaction that has merely completed: the missing object is the participant responsible for durable work and recovery.
Check resource-manager lifetime before blaming the coordinator. Service shutdown, provider restart, premature COM release, or re-registration under a new identifier can leave cached enlistment objects pointing to a participant that no longer exists. Recreate the resource manager and enlistment through the supported initialization path; do not attach a new resource instance to an old enlistment token.
Lifetime evidence that distinguishes a stale enlistment
- Resource-manager identifier when the enlistment was created.
- Provider process restart or shutdown time.
- Reference-release and unregister sequence for the resource manager.
- Transaction state when the stale callback or method was invoked.
References
- Microsoft MS-DTCO: durable resource-manager role
- Microsoft: resource and enlistment association
- PostgreSQL: external transaction-manager participation
Looking for a different code? Search another status or error code.