| Previous | Next |
| STATUS_RM_METADATA_CORRUPT | STATUS_DIRECTORY_NOT_RM |
STATUS_TRANSACTION_NOT_JOINED
STATUS_TRANSACTION_NOT_JOINED identifies an ordering error in a KTM resource manager: it tried to prepare a transaction without first completing its enlistment. KTM uses the enlistment object to associate a resource manager with the transaction and to deliver the notifications that drive prepare, commit, rollback, and recovery work.
Do not treat this as a generic prepare failure. The important question is whether ZwCreateEnlistment failed, was skipped on one code path, or created an enlistment for a different transaction identifier. STATUS_TRANSACTION_NOT_ENLISTED is related, but can arise when a later operation requires an enlistment that is absent.
Prepare was attempted without a valid enlistment
- Log the transaction ID and enlistment handle immediately after the enlistment call succeeds.
- Verify that the requested notification mask includes the phases the resource manager later responds to.
- Do not call prepare-completion routines as a substitute for creating or recovering an enlistment.
References
- Microsoft: creating a KTM resource manager
- Microsoft: KTM enlistment objects
- Microsoft: KTM transaction notifications
Looking for a different code? Search another status or error code.