Поделиться через


NOTIFICATION_MASK

Список различных типов уведомлений, которые могут быть получены зачислением.

TRANSACTION_NOTIFY_MASK

0x3FFFFFFF

Маска, указывающая все допустимые биты для уведомления о транзакции.

TRANSACTION_NOTIFY_PREPREPARE

0x00000001

Это уведомление вызывается после того, как клиент вызывает CommitTransaction , и ни один диспетчер ресурсов (RM) не поддерживает однофазную фиксацию, либо более высокий диспетчер транзакций (TM) вызывает PrePrepareEnlistment. Это уведомление получается модулями RM с указанием, что они должны выполнить любую работу, которая может привести к тому, что другим модулям RM потребуется задействовать в транзакции, например очистку кэша. После завершения этих операций RM должна вызвать PrePrepareComplete. Чтобы получить это уведомление, RM также должен поддерживать TRANSACTION_NOTIFY_PREPARE и TRANSACTION_NOTIFY_COMMIT.

TRANSACTION_NOTIFY_PREPARE

0x00000002

Это уведомление вызывается после завершения обработки TRANSACTION_NOTIFY_PREPREPARE . Он сигнализирует RM о завершении всей работы, связанной с этим зачислением, чтобы гарантировать успешное выполнение операции фиксации и прерывание операции. Как правило, основная часть работы для транзакции выполняется на этапе подготовки. Для устойчивых модулей RM они должны регистрировать свое состояние перед вызовом функции PrepareComplete . Это последний шанс для RM запросить откат транзакции.

TRANSACTION_NOTIFY_COMMIT

0x00000004

Это уведомление сигнализирует RM о завершении всей работы, связанной с этим зачислением. Как правило, RM снимает все блокировки, освобождает все сведения, необходимые для отката транзакции. RM должен ответить, вызвав функцию CommitComplete после завершения этих операций.

TRANSACTION_NOTIFY_ROLLBACK

0x00000008

Это уведомление сигнализирует RM о том, что он отменит всю выполненную им работу, связанную с транзакцией.

TRANSACTION_NOTIFY_PREPREPARE_COMPLETE

0x00000010

Это уведомление сообщает вышестоящему TM о том, что операция предварительной подготовки успешно завершена.

TRANSACTION_NOTIFY_PREPARE_COMPLETE

0x00000020

Это уведомление сообщает вышестоящему TM о том, что операция подготовки успешно завершена.

TRANSACTION_NOTIFY_COMMIT_COMPLETE

0x00000040

Это уведомление сообщает вышестоящему TM о том, что операция фиксации успешно завершена.

TRANSACTION_NOTIFY_ROLLBACK_COMPLETE

0x00000080

Это уведомление сообщает вышестоящему TM о том, что операция отката была успешно завершена.

TRANSACTION_NOTIFY_RECOVER

0x00000100

Это уведомление сигнализирует RM о том, что они должны восстановить свое состояние, так как необходимо повторно получить результат транзакции. Например, при восстановлении RM и наличии транзакций, оставшихся под сомнением. Это уведомление доставляется после устранения проблемного состояния.

TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT

0x00000200

Это уведомление сигнализирует RM о завершении и фиксации транзакции без использования протокола двухфазной фиксации. Если RM хочет использовать двухэтапную операцию, она должна ответить, вызвав функцию SinglePhaseReject .

TRANSACTION_NOTIFY_DELEGATE_COMMIT

0x00000400

KTM сигнализирует вышестоящему TM о выполнении операции фиксации.

TRANSACTION_NOTIFY_RECOVER_QUERY

0x00000800

KTM сигнализирует вышестоящему TM о том, что он запрашивает состояние сомнительной транзакции.

TRANSACTION_NOTIFY_ENLIST_PREPREPARE

0x00001000

Это уведомление сигнализирует вышестоящему TM о том, что предварительно подготовленные уведомления должны быть доставлены в указанное зачисление.

TRANSACTION_NOTIFY_LAST_RECOVER

0x00002000

Это уведомление указывает, что операция восстановления для этого RM завершена.

TRANSACTION_NOTIFY_INDOUBT

0x00004000

Указанная транзакция находится в состоянии сомнения. RM получает это уведомление во время операций восстановления, когда транзакция была подготовлена, но нет более высокого диспетчера транзакций (TM). Например, если транзакция включает удаленную TM и этот узел недоступен, его узел недоступен или локальная служба координатора распределенных транзакций недоступна, состояние транзакции вызывает сомнения.

TRANSACTION_NOTIFY_TM_ONLINE

0x02000000

ТМ находится в сети и принимает запросы.

TRANSACTION_NOTIFY_REQUEST_OUTCOME

0x20000000

Сигнализирует RM о наличии сведений о результатах и о том, что необходимо запросить эти сведения.

TRANSACTION_NOTIFY_COMMIT_FINALIZE

0x40000000

Зарезервировано.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Заголовок
KtmTypes.h (включая Windows.h)

См. также раздел

Координатор распределенных транзакций

Константы диспетчера транзакций ядра

CreateEnlistment

CommitComplete

GetNotificationResourceManager

GetNotificationResourceManagerAsync

PrepareComplete

SinglePhaseReject

TRANSACTION_NOTIFICATION