What does HRESULT 0x8004D00C (XACT_E_NORESOURCE) mean?

 
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


Looking for a different code? Search another status or error code.