NOTIFICATION_MASK

Lists the different types of notifications that can be received by an enlistment.

TRANSACTION_NOTIFY_MASK
0x3FFFFFFF

A mask that indicates all valid bits for a transaction notification.

TRANSACTION_NOTIFY_PREPREPARE
0x00000001

This notification is called after a client calls CommitTransaction and either no resource manager (RM) supports single-phase commit or a superior transaction manager (TM) calls PrePrepareEnlistment. This notification is received by the RMs indicating that they should complete any work that could cause other RMs to need to enlist in a transaction, such as flushing its cache. After completing these operations the RM must call PrePrepareComplete. To receive this notification the RM must also support TRANSACTION_NOTIFY_PREPARE and TRANSACTION_NOTIFY_COMMIT.

TRANSACTION_NOTIFY_PREPARE
0x00000002

This notification is called after the TRANSACTION_NOTIFY_PREPREPARE processing is complete. It signals the RM to complete all the work that is associated with this enlistment so that it can guarantee that a commit operation could succeed and an abort operation could also succeed. Typically, the bulk of the work for a transaction is done during the prepare phase. For durable RMs, they must log their state prior to calling the PrepareComplete function. This is the last chance for the RM to request that the transaction be rolled back.

TRANSACTION_NOTIFY_COMMIT
0x00000004

This notification signals the RM to complete all the work that is associated with this enlistment. Typically, the RM releases any locks, releases any information necessary to roll back the transaction. The RM must respond by calling the CommitComplete function when it has finished these operations.

TRANSACTION_NOTIFY_ROLLBACK
0x00000008

This notification signals the RM to undo all the work it has done that is associated with the transaction.

TRANSACTION_NOTIFY_PREPREPARE_COMPLETE
0x00000010

This notification signals to the superior TM that a pre-prepare operation was completed successfully.

TRANSACTION_NOTIFY_PREPARE_COMPLETE
0x00000020

This notification signals to the superior TM that a prepare operation was completed successfully.

TRANSACTION_NOTIFY_COMMIT_COMPLETE
0x00000040

This notification signals to the superior TM that a commit operation was completed successfully.

TRANSACTION_NOTIFY_ROLLBACK_COMPLETE
0x00000080

This notification signals to the superior TM that a rollback operation was completed successfully.

TRANSACTION_NOTIFY_RECOVER
0x00000100

This notification signals to RMs that they should recover their state because a transaction outcome must be redelivered. For example, when an RM is recovered, and when there are transactions left in-doubt. This notification is delivered once the in-doubt state is resolved.

TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT
0x00000200

This notification signals the RM to complete and commit the transaction without using a two-phase commit protocol. If the RM wants to use a two-phase operation, it must respond by calling the SinglePhaseReject function.

TRANSACTION_NOTIFY_DELEGATE_COMMIT
0x00000400

KTM is signaling to the superior TM to perform a commit operation.

TRANSACTION_NOTIFY_RECOVER_QUERY
0x00000800

KTM is signaling to the superior TM to query the status of an in-doubt transaction.

TRANSACTION_NOTIFY_ENLIST_PREPREPARE
0x00001000

This notification signals to the superior TM that pre-prepare notifications must be delivered on the specified enlistment.

TRANSACTION_NOTIFY_LAST_RECOVER
0x00002000

This notification indicates that the recovery operation is complete for this RM.

TRANSACTION_NOTIFY_INDOUBT
0x00004000

The specified transaction is in an in-doubt state. The RM receives this notification during recovery operations when a transaction has been prepared, but there is no superior transaction manager (TM) available. For example, when a transaction involves a remote TM and that node is unavailable, its node is unavailable, or the local Distributed Transaction Coordinator service is unavailable, the transaction state is in-doubt.

TRANSACTION_NOTIFY_TM_ONLINE
0x02000000

The TM is online and accepting requests.

TRANSACTION_NOTIFY_REQUEST_OUTCOME
0x20000000

Signals to RMs that there is outcome information available, and that a request for that information should be made.

TRANSACTION_NOTIFY_COMMIT_FINALIZE
0x40000000

Reserved.

Requirements

Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2008

Header

KtmTypes.h (include Windows.h)

See also

Distributed Transaction Coordinator
Kernel Transaction Manager Constants
CreateEnlistment
CommitComplete
GetNotificationResourceManager
GetNotificationResourceManagerAsync
PrepareComplete
SinglePhaseReject
TRANSACTION_NOTIFICATION

 

 

Community Additions

ADD
Show: