Enlistments

A resource manager enlists in a transaction when it begins participation in that particular transaction. The enlistment defines which notifications the resource manager accepts. A resource manager creates an enlistment object when it enlists in a transaction. This object signals to KTM that the resource manager (RM) is requesting notifications about the specified transaction.

The RM provides a NOTIFICATION_MASK structure that details which notifications it is requesting.

Enlistment Functions

The following functions are used with enlistments.

Function Description
CommitComplete Indicates that a resource manager (RM) has finished committing a transaction that was requested by the transaction manager (TM).
CreateEnlistment Creates an enlistment, sets its initial state, and opens a handle to the enlistment with the specified access.
GetEnlistmentRecoveryInformation Retrieves an opaque structure of recovery data from KTM. Recovery information is stored in a log on behalf of a resource manager (RM) by calling the SetEnlistmentRecoveryInformation function. After a failure, the RM can use the GetEnlistmentRecoveryInformation function to retrieve the information.
OpenEnlistment Opens an existing enlistment object, and returns a handle to the enlistment.
ReadOnlyEnlistment Requests that the specified enlistment be converted to a read-only enlistment. A read-only enlistment cannot participate in the outcome of the transaction and is not durably recorded for recovery.
RollbackEnlistment Rolls back the specified transaction that is associated with an enlistment. This function cannot be called for read-only enlistments.
SetEnlistmentRecoveryInformation Sets an opaque, user-defined structure of recovery data from KTM. Recovery information is stored in a log on behalf of a resource manager (RM) by calling SetEnlistmentRecoveryInformation. After a failure, the RM can use GetEnlistmentRecoveryInformation to retrieve the information.
SinglePhaseReject Indicates that the resource manager (RM) is refusing a single-phase request. When a transaction manager (TM) receives this call, it initiates a two-phase commit and sends a prepare request to all enlisted RMs.