Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
KTM poskytuje frontu oznámení pro každého správce prostředků. KTM doručuje oznámení správci prostředků umístěním do fronty správce prostředků.
Správce prostředků může načítat oznámení z fronty synchronně nebo asynchronně.
Pokud chcete načíst oznámení synchronně, správce prostředků může opakovaně volat ZwGetNotificationResourceManager.
Pokud chcete dostávat oznámení asynchronně, správce prostředků může volat TmEnableCallbacks k nastavení rutiny zpětného volání. KTM volá rutinu zpětného volání pokaždé, když do fronty správce prostředků vloží oznámení.
Když správce prostředků zavolá ZwCreateEnlistment k vytvoření zařazení pro transakci, správce prostředků určuje typy oznámení, které by měla přijmout. Správci prostředků dostanou jenom oznámení, k jejichž příjmu se zaregistrují.
Konstanty oznámení jsou definovány v Ktmtypes.h. Názvy konstant oznámení mají formát TRANSACTION_NOTIFY_Xxx.
Zbytek tohoto tématu obsahuje všechny konstanty oznámení, které Ktmtypes.h definuje a rozdělí do tří skupin:
Oznámení, která můžou dostávat správci prostředků
Oznámení, která můžou přijímat nadřízení správci transakcí
Konstanty oznámení, které jsou definovány, ale aktuálně se nepoužívají
Oznámení pro správce prostředků
Všichni správci prostředků se musí zaregistrovat, aby dostávali oznámení TRANSACTION_NOTIFY_PREPREPARE, TRANSACTION_NOTIFY_PREPARE a TRANSACTION_NOTIFY_COMMIT, i když následně volají ZwReadOnlyEnlistment, aby zařazení označili jako pouze pro čtení.
Správci prostředků můžou podporovat TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT, ale musí také podporovat oznámení pro vícestupňovou předběžnou přípravu, přípravu a potvrzení.
Následující seznam obsahuje všechna oznámení, která můžou správci prostředků přijímat:
TRANSACTION_NOTIFY_PREPREPARE
Při odeslání: Klient volá ZwCommitTransaction a žádný správce prostředků nepodporuje jednofázové potvrzení nebo pokud nadřazený správce transakcí volá ZwPrePrepareEnlistment.
Přijal: Správci zdrojů.
Požadovaná akce příjemce: Proveďte předběžné operace přípravy a potom volejte ZwPrePrepareComplete. (Další informace o operacích předběžné přípravy najdete v tématu Zpracování operací potvrzení.)
Omezení: Správce prostředků musí také podporovat TRANSACTION_NOTIFY_PREPARE a TRANSACTION_NOTIFY_COMMIT.
TRANSACTION_NOTIFY_PREPARE
Při odeslání: Po TRANSACTION_NOTIFY_PREPREPARE pokud klient volá ZwCommitTransaction a žádný správce prostředků nepodporuje jednofázové potvrzení nebo pokud nadřazený správce transakcí volá ZwPrepareEnlistment.
Přijal: Správci zdrojů.
Požadovaná akce příjemce: Proveďte operace přípravy a pak volejte ZwPrepareComplete. (Další informace o operacích potvrzení najdete v tématu Zpracování operací potvrzení.)
Omezení: Správce prostředků musí také podporovat TRANSACTION_NOTIFY_PREPREPARE a TRANSACTION_NOTIFY_COMMIT.
TRANSACTION_NOTIFY_COMMIT
Při odeslání: Po TRANSACTION_NOTIFY_PREPARE pokud klient volá ZwCommitTransaction a žádný správce prostředků nepodporuje jednofázové potvrzení nebo pokud nadřazený správce transakcí volá ZwCommitEnlistment.
Přijal: Správci zdrojů.
Požadovaná akce příjemce: Proveďte operace potvrzení a potom volejte ZwCommitComplete. (Další informace o operacích potvrzení naleznete v tématu Zpracování operací potvrzení.)
Omezení: Správce prostředků musí také podporovat TRANSACTION_NOTIFY_PREPREPARE a TRANSACTION_NOTIFY_PREPARE.
TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT
Při odeslání: Klient volá ZwCommitTransaction a Resource Manager podporuje operace s jednofázovým potvrzením.
Přijal: Správci zdrojů.
Požadovaná akce příjemce: Buď potvrďte transakci nebo zavolejte ZwSinglePhaseReject. (Další informace o operacích jednofázového potvrzení naleznete v tématu Zpracování operací potvrzení.)
Omezení: Správce prostředků musí také podporovat TRANSACTION_NOTIFY_PREPREPARE, TRANSACTION_NOTIFY_PREPARE a TRANSACTION_NOTIFY_COMMIT.
TRANSACTION_NOTIFY_ROLLBACK
Při odeslání: Klient volá ZwRollbackTransaction, nadřízený správce transakcí volá ZwRollbackEnlistment nebo KTM detekuje chybu (například neúspěšné zápis do streamu protokolu).
Přijímá: Správci prostředků i nadřízení správci transakcí.
Požadovaná akce příjemce: Proveďte všechny operace potřebné k vrácení dat transakce a volání ZwRollbackComplete. (Další informace o operacích vrácení zpět naleznete v tématu Zpracování operací vrácení zpět.)
Omezení: Všichni správci prostředků a nadřízení správci transakcí musí podporovat TRANSACTION_NOTIFY_ROLLBACK.
TRANSACTION_NOTIFY_RECOVER
Při odeslání: Správce prostředků volá ZwRecoverResourceManager.
Přijal: Správci zdrojů.
Požadovaná akce příjemce: Správce prostředků musí zavolat ZwRecoverEnlistment. (Další informace o operacích obnovení najdete v tématu Zpracování operací obnovení.)
Omezení: Žádný.
TRANSACTION_NOTIFY_LAST_RECOVER
Při odeslání: Po odeslání KTM poslední TRANSACTION_NOTIFY_RECOVER pro zařazení správce prostředků.
Přijal: Správci zdrojů.
Požadovaná akce příjemce: Ukončete operaci obnovení. (Další informace o operacích obnovení najdete v tématu Zpracování operací obnovení.)
Omezení: Žádný.
TRANSACTION_NOTIFY_INDOUBT
Při odeslání: Po té, co správce prostředků zavolá ZwRecoverEnlistment, pokud KTM nemůže určit, zda by transakce měla být potvrzena nebo zrušena (obvykle proto, že TPS má nadřízeného správce transakcí, který není k dispozici).
Přijali: Správci zdrojů.
Požadovaná akce příjemce: Nedělejte nic, dokud KTM neodešle TRANSACTION_NOTIFY_COMMIT nebo TRANSACTION_NOTIFY_ROLLBACK.
Omezení: Žádný.
TRANSAKCE_UPOZORNĚNÍ_RM_ODPOJENO
Po odeslání: Správce prostředků, který zpracovává operaci jednofázového potvrzení, zavře popisovač zařazení, aniž by naznačil, že byla transakce potvrzena nebo vrácena zpět.
Přijato: Správci prostředků a nadřízení správci transakcí, kteří mají zařazení v transakci.
Požadovaná akce příjemce: Operace čištění specifické pro transakce. Obvykle je toto oznámení užitečné pro správce prostředků jen pro čtení.
Omezení: Žádný.
Oznámení pro nadřízené správce transakcí
Nadřízení správci transakcí můžou dostávat následující oznámení:
TRANSACTION_NOTIFY_ROLLBACK
Viz předchozí popis.
TRANSAKCE_UPOZORNĚNÍ_RM_ODPOJEN
Viz předchozí popis.
TRANSACTION_NOTIFY_PREPREPARE_COMPLETE
Po odeslání: Jakmile všichni správci prostředků obdrží TRANSACTION_NOTIFY_PREPREPARE a odpověděli voláním ZwPrePrepareComplete.
Přijato od: Vyšší správci transakcí.
Požadovaná akce příjemce: Nadřízený správce transakcí by měl volat ZwPrepareEnlistment.
TRANSACTION_NOTIFY_PREPARE_COMPLETE
Při odeslání: Jakmile všichni správci prostředků obdrželi TRANSACTION_NOTIFY_PREPARE a odpověděli voláním ZwPrepareComplete.
Přijato: Přední manažeři transakcí.
Požadovaná akce příjemce: Nadřazený správce transakcí by měl volat ZwCommitEnlistment.
TRANSACTION_NOTIFY_COMMIT_COMPLETE
Při odeslání: Jakmile všichni správci prostředků obdrželi TRANSACTION_NOTIFY_COMMIT a odpověděli voláním ZwCommitComplete.
Přijato: Vynikající správci transakcí.
Požadovaná akce příjemce: Operace čištění transakcí
Notifikace transakce o dokončení vrácení zpět
Po odeslání: Jakmile všichni správci prostředků obdrželi TRANSACTION_NOTIFY_ROLLBACK a odpověděli voláním ZwRollbackComplete.
Přijato: Vynikající správci transakcí.
Požadovaná akce příjemce: Operace čištění transakcí
TRANSACTION_NOTIFY_RECOVER_QUERY
Při odeslání: Nadřízený správce transakcí volá ZwRecoverResourceManager.
Přijato od: špičkových správců transakcí.
Požadovaná akce příjemce: Nadřazený správce transakcí musí zavolat buď ZwCommitEnlistment nebo ZwRollbackEnlistment pro zařazení.
TRANSACTION_NOTIFY_COMMIT_REQUEST
Při odeslání: Klient volá ZwCommitTransaction. Pokud správce nadřízených transakcí zaregistroval toto oznámení pro zařazení, KTM odešle TRANSACTION_NOTIFY_COMMIT_REQUEST nadřízenému správci transakcí místo odesílání TRANSACTION_NOTIFY_COMMIT správcům prostředků.
Přijato od: Nadřazení správci transakcí.
Požadovaná akce příjemce: Nadřízený správce transakcí volá ZwCommitEnlistment.
VÝSLEDEK_UPOZORNĚNÍ_NA_TRANSAKCI
Při odeslání: Správce prostředků volá TmRequestOutcomeEnlistment , zatímco transakce je v připraveném stavu.
Přijato: Vynikající správci transakcí.
Požadovaná akce příjemce: Nadřazený správce transakcí musí volat ZwCommitEnlistment nebo ZwRollbackEnlistment.
Nepoužitá oznámení
Následující oznámení jsou definována v Ktmtypes.h, ale KTM je v současné době nepodporuje:
TRANSACTION_NOTIFY_DELEGATE_COMMIT
TRANSACTION_NOTIFY_ENLIST_MASK
TRANSACTION_NOTIFY_ENLIST_PREPREPARE
TRANSAKCE_UPOZORNĚNÍ_MARŠÁLOVÁNÍ
TRANSACTION_NOTIFY_PROMOTE
TRANSAKCE_UPOZORNĚNÍ_PROPAKOVAT_NOVÉ
Transakce_Upozornění_Propagace_Stažení
TRANSACTION_NOTIFY_PROPAGATE_PUSH
TRANSACTION_NOTIFY_TM_ONLINE
TRANSACTION_NOTIFY_COMMIT_FINALIZE