Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A KTM minden erőforrás-kezelőhöz biztosít egy értesítési üzenetsort. A KTM értesítéseket küld egy erőforrás-kezelőnek úgy, hogy azokat az erőforrás-kezelő üzenetsorába helyezi.
Az erőforrás-kezelők szinkronizálva vagy aszinkron módon is lekérhetik az értesítéseket az üzenetsorból.
Ha szinkron módon szeretné lekérni az értesítéseket, az erőforrás-kezelő ismételten meghívhatja a ZwGetNotificationResourceManagert.
Az értesítések aszinkron fogadásához az erőforrás-kezelő meghívhatja a TmEnableCallbackst a visszahívási rutin beállításához. A KTM minden alkalommal meghívja a visszahívási rutint, amikor értesítést helyez az erőforrás-kezelő üzenetsorába.
Amikor egy erőforrás-kezelő meghívja a ZwCreateEnlistmentet , hogy hozzon létre egy regisztrációt egy tranzakcióhoz, az erőforrás-kezelő határozza meg, hogy milyen típusú értesítéseket kell kapnia. Az erőforrás-kezelők csak az általuk regisztrált értesítéseket kapják meg.
Az értesítési állandók a Ktmtypes.h fájlban vannak definiálva. Az értesítési állandók nevei TRANSACTION_NOTIFY_Xxx formátumúak.
A témakör többi része felsorolja a Ktmtypes.h által definiált összes értesítési állandót, és három csoportra osztja őket:
Értesítések, amelyeket az erőforrás-kezelők fogadhatnak
Értesítések, amelyeket a felsőbb szintű tranzakciókezelők fogadhatnak
Definiált, de jelenleg nem használt értesítési állandók
Erőforrás-kezelők értesítései
Minden erőforrás-kezelőnek regisztrálnia kell a TRANSACTION_NOTIFY_PREPREPARE, TRANSACTION_NOTIFY_PREPARE és TRANSACTION_NOTIFY_COMMIT értesítések fogadásához, még akkor is, ha később meghívják a ZwReadOnlyEnlistmentet , hogy csak olvashatóként jelöljön meg egy regisztrációt.
Az erőforrás-kezelők támogathatják a TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT, de támogatniuk kell a többfázisú előkészületi, előkészítési és véglegesítési értesítéseket is.
Az alábbi lista tartalmazza az erőforrás-kezelők által megkapható összes értesítést:
TRANZAKCIÓ_ÉRTESÍTÉS_ELŐKÉSZÍTÉS
Küldéskor: Az ügyfél meghívja a ZwCommitTransactiont , és egyetlen erőforrás-kezelő sem támogatja az egyfázisú véglegesítést, vagy ha egy kiváló tranzakciókezelőmeghívja a ZwPrePrepareEnlistmentet.
Érkezett: Erőforrás-kezelők.
A címzett szükséges művelete: Végezze el az előkészületi műveleteket, majd hívja meg a ZwPrePrepareComplete parancsot. (Az előkészületi műveletekről további információt a Véglegesítési műveletek kezelése című témakörben talál.)
Korlátozások: Az erőforrás-kezelőnek TRANSACTION_NOTIFY_PREPARE és TRANSACTION_NOTIFY_COMMIT is támogatnia kell.
TRANZAKCIÓ_ÉRTESÍTÉS_ELŐKÉSZÍTÉS
Elküldve: TRANSACTION_NOTIFY_PREPREPARE után, ha egy ügyfél meghívja a ZwCommitTransactiont , és egyetlen erőforrás-kezelő sem támogatja az egyfázisú véglegesítést, vagy ha egy kiváló tranzakciókezelő meghívja a ZwPrepareEnlistmentet.
Érkezett: Erőforrás-kezelők.
A címzett szükséges művelete: Végezze el az előkészítési műveleteket, majd hívja meg a ZwPrepareComplete-t. (A műveletek előkészítésével kapcsolatos további információkért lásd: Véglegesítési műveletek kezelése.)
Korlátozások: Az erőforrás-kezelőnek TRANSACTION_NOTIFY_PREPREPARE és TRANSACTION_NOTIFY_COMMIT is támogatnia kell.
TRANZAKCIÓ_ÉRTESÍTÉS_ELKÖTELEZÉS
Elküldve: TRANSACTION_NOTIFY_PREPARE után, ha egy ügyfél meghívja a ZwCommitTransactiont , és egyetlen erőforrás-kezelő sem támogatja az egyfázisú véglegesítést, vagy ha egy kiváló tranzakciókezelő meghívja a ZwCommitEnlistmentet.
Érkezett: Erőforrás-kezelők.
A címzett szükséges művelete: Véglegesítési műveletek végrehajtása, majd a ZwCommitComplete meghívása. (További információ a véglegesítési műveletekről: Véglegesítési műveletek kezelése.)
Korlátozások: Az erőforrás-kezelőnek támogatnia kell a TRANSACTION_NOTIFY_PREPREPARE-t és a TRANSACTION_NOTIFY_PREPARE-t.
TRANZAKCIÓ_ÉRTESÍTÉS_EGYES_FÁZISÚ_ELKÖTELEZETTSÉG
Küldéskor: Az ügyfél meghívja a ZwCommitTransactiont , és egy erőforrás-kezelő támogatja az egyfázisú véglegesítési műveleteket.
Érkezett: Erőforrás-kezelők.
A címzett szükséges művelete: Véglegesítse a tranzakciót, vagy hívja meg a ZwSinglePhaseReject parancsot. (Az egyfázisú véglegesítési műveletekkel kapcsolatos további információkért lásd: Véglegesítési műveletek kezelése.)
Korlátozások: Az erőforrás-kezelőnek támogatnia kell TRANSACTION_NOTIFY_PREPREPARE, TRANSACTION_NOTIFY_PREPARE és TRANSACTION_NOTIFY_COMMIT is.
TRANSACTION_NOTIFY_ROLLBACK
Küldéskor: Egy ügyfél meghívja a ZwRollbackTransactiont, egy kiváló tranzakciókezelő meghívja a ZwRollbackEnlistmentet, vagy a KTM hibát észlel (például sikertelen írást a naplóstreambe).
Érkezett: Mind az erőforrás-kezelők, mind a felettes tranzakciókezelők.
A címzett szükséges művelete: Hajtsa végre a tranzakció adatainak visszaállításához szükséges műveleteket, majd hívja meg a ZwRollbackComplete parancsot. (A visszaállítási műveletekkel kapcsolatos további információkért lásd a visszaállítási műveletek kezelését ismertető témakört.)
Korlátozások: Minden erőforrás-kezelőnek és kiváló tranzakciókezelőnek támogatnia kell TRANSACTION_NOTIFY_ROLLBACK.
TRANZAKCIÓ_ÉRTESÍTÉS_HELYREÁLLÍTÁS
Küldéskor: Egy erőforrás-kezelő meghívja a ZwRecoverResourceManagert.
Fogadta: Erőforrás-kezelők.
A címzett szükséges művelete: Az erőforrás-kezelőnek meg kell hívnia a ZwRecoverEnlistment parancsot. (A helyreállítási műveletekről további információt a Helyreállítási műveletek kezelése című témakörben talál.)
Korlátozások: Egyik sem.
TR_TRANZAKCIÓ_UTOLSÓ_HELYREÁLLÍTÁS
Küldéskor: Miután a KTM elküldte az utolsó TRANSACTION_NOTIFY_RECOVER-t egy erőforrás-kezelői bejegyzéshez.
Érkezett: Erőforrás-kezelők.
A címzett szükséges művelete: A helyreállítási művelet befejezése. (A helyreállítási műveletekről további információt a Helyreállítási műveletek kezelése című témakörben talál.)
Korlátozások: Egyik sem.
TRANSACTION_NOTIFY_INDOUBT
Elküldve: Miután egy erőforrás-kezelő meghívja a ZwRecoverEnlistmentet, a KTM nem tudja megállapítani, hogy a tranzakciót le kell-e véglegesíteni vagy vissza kell-e állítani (általában azért, mert a TPS rendelkezik egy kiváló tranzakciókezelővel, amely nem érhető el).
Érkezett: Erőforrás-kezelők.
A címzett kötelező művelete: Ne tegyen semmit, amíg a KTM nem küld TRANSACTION_NOTIFY_COMMIT vagy TRANSACTION_NOTIFY_ROLLBACK.
Korlátozások: Egyik sem.
TRANSACTION_NOTIFY_RM_KAPCSOLAT_MEGSZAKADT
Küldéskor: Az egyfázisú véglegesítési műveletet kezelő erőforrás-kezelő anélkül zárja be a beléptetési leírót, hogy jelezze, hogy véglegesíti vagy visszaállította a tranzakciót.
Érkezett: Erőforrás-kezelők és magasabb rendű tranzakciókezelők, akik csatlakozásokkal rendelkeznek a tranzakcióhoz.
A címzett szükséges művelete: Tranzakcióspecifikus törlési műveletek. Ez az értesítés általában az erőforrás-kezelők számára hasznos, amelyek csak olvashatóak.
Korlátozások: Egyik sem.
Értesítések a felsőbb szintű tranzakciókezelők számára
A felsőbb szintű tranzakciókezelők a következő értesítéseket kaphatják:
TRANSACTION_NOTIFY_ROLLBACK
Lásd a korábbi leírást.
TRANSACTION_NOTIFY_RM_LECSATLAKOZVA
Lásd a korábbi leírást.
TRANSACTION_NOTIFY_PREPREPARE_COMPLETE
Elküldve: Miután az összes erőforrás-kezelő megkapta a TRANSACTION_NOTIFY_PREPREPARE, és a ZwPrePrepareComplete meghívásával válaszolt.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett szükséges művelete: A felsőbb szintű tranzakciókezelőnek meg kell hívnia a ZwPrepareEnlistment parancsot.
TRANSACTION_NOTIFY_PREPARE_COMPLETE
Elküldve: Miután az összes erőforrás-kezelő megkapta a TRANSACTION_NOTIFY_PREPARE, és a ZwPrepareComplete meghívásával válaszolt.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett szükséges művelete: A felsőbb szintű tranzakciókezelőnek meg kell hívnia a ZwCommitEnlistment parancsot.
TRANSACTION_NOTIFY_COMMIT_COMPLETE
Elküldve: Miután az összes erőforrás-kezelő megkapta a TRANSACTION_NOTIFY_COMMIT, és a ZwCommitComplete meghívásával válaszolt.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett kötelező művelete: Tranzakciókarbantartási műveletek.
TRANZAKCIÓ_ÉRTESÍTÉS_VISSZAVONÁS_BEFEJEZVE
Elküldve: Miután az összes erőforrás-kezelő megkapta a TRANSACTION_NOTIFY_ROLLBACK, és a ZwRollbackComplete meghívásával válaszolt.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett kötelező művelete: Tranzakciókarbantartási műveletek.
TRANSACTION_NOTIFY_RECOVER_QUERY
Küldéskor: Egy kiváló tranzakciókezelő meghívja a ZwRecoverResourceManagert.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett szükséges művelete: A felsőbb szintű tranzakciókezelőnek meg kell hívnia a ZwCommitEnlistment vagy a ZwRollbackEnlistment parancsot a regisztrációhoz.
TRANSACTION_NOTIFY_COMMIT_REQUEST
Küldéskor: Egy ügyfél meghívja a ZwCommitTransactiont. Ha egy felettes tranzakciókezelő regisztrált erre az értesítésre egy bevonáshoz, a KTM TRANSACTION_NOTIFY_COMMIT_REQUEST küldi a felettes tranzakciókezelőnek ahelyett hogy TRANSACTION_NOTIFY_COMMIT küldi az erőforrás-kezelőknek.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett szükséges művelete: A felsőbb szintű tranzakciókezelő meghívja a ZwCommitEnlistment parancsot.
TRANSACTION_NOTIFY_REQUEST_OUTCOME
Küldéskor: Egy erőforrás-kezelő meghívja a TmRequestOutcomeEnlistment parancsot, amíg a tranzakció előkészített állapotban van.
Érkezett: Felsőbb szintű tranzakciókezelők.
A címzett szükséges művelete: A felsőbb szintű tranzakciókezelőnek meg kell hívnia a ZwCommitEnlistment vagy a ZwRollbackEnlistment parancsot.
Nem használt értesítések
A következő értesítések a Ktmtypes.h fájlban vannak definiálva, de a KTM jelenleg nem támogatja őket:
TRANSACTION_NOTIFY_DELEGATE_COMMIT
TRANSACTION_NOTIFY_ENLIST_MASK
TRANZAKCIÓ_ÉRTESÍTÉS_FELVÉTEL_ELŐKÉSZÍTÉS
TRANSACTION_NOTIFY_MARSHAL
TRANZAKCIÓ_ÉRTESÍTÉS_ELŐLÉPTETÉS
TRANZAKCIÓ_ÉRTESÍTÉS_ELŐLÉPTETÉS_ÚJ
TRANSACTION_NOTIFY_PROPAGATE_PULL
TRANSACTION_NOTIFY_PROPAGATE_PUSH
TRANSACTION_NOTIFY_TM_ONLINE
TRANSACTION_NOTIFY_COMMIT_FINALIZE