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 tranzakciós ügyfél egy tranzakciófeldolgozó rendszer (TPS) összetevő, amely egy erőforrás-kezelő exportált felületét használja az erőforrás-kezelő által támogatott erőforrások( például egy adatbázis) eléréséhez.
Az ügyfél általában létrehoz egy tranzakciót, végrehajt egy adatbázis-műveletet, majd véglegesíti a tranzakciót, hogy a műveletek véglegesítve legyenek. Ha az ügyfél hibát tapasztal, visszaállíthatja a tranzakciót, hogy a tranzakció véglegesítése helyett eltávolítsa a tranzakció műveleteit.
A kernel módú KTM-et használó tranzakciós ügyfélnek általában az alábbi feladatokat kell elvégeznie minden tranzakcióhoz:
Hozzon létre egy tranzakcióobjektumot.
A ZwCreateTransaction hívása létrehoz egy tranzakcióobjektumot, egy objektumleírót biztosít, és hozzárendel egy objektumazonosítót (GUID-t), amelyet az ügyfél átadhat az erőforrás-kezelőnek a tranzakció azonosításához.
Szerezze be a tranzakcióobjektum azonosítóját.
Az ügyfél meghívhatja a ZwQueryInformationTransaction parancsot az objektumazonosító lekéréséhez.
Adja át a tranzakcióobjektum azonosítóját egy erőforrás-kezelőnek.
Az ügyfél általában meghívja az erőforrás-kezelő exportált felületét, hogy nyisson meg egy kommunikációs útvonalat az erőforrás-kezelőhöz, és társítsa az elérési utat a tranzakcióhoz. Előfordulhat például, hogy az erőforrás-kezelő olyan CreateDataObject rutint biztosít, amely hasonló a TPS-összetevők ismertetése témakör által leírthoz.
Hajtsa végre a tranzakcióban belefoglalandó műveleteket.
Az ügyfél általában meghívja az erőforrás-kezelő felületét az erőforrás-kezelő erőforrásának eléréséhez. Előfordulhat például, hogy egy adatbázis-kezelő ügyfele olvas és ír az adatbázisba.
Véglegesítse vagy visszaállítsa a tranzakciót.
Ha az összes erőforrásművelet sikeres, az ügyfélnek meg kell hívnia a ZwCommitTransactiont a műveletek véglegesítéséhez. Ha egy művelet meghiúsul, az ügyfélnek A ZwCommitTransaction helyett a ZwRollbackTransaction parancsot kell meghívnia. Ha például egy adatbázis-kezelő ügyfele megállapítja, hogy az írási műveletek egyike sikertelen volt, az ügyfélnek meg kell hívnia a ZwRollbackTransaction parancsot , hogy egyik írási művelet se legyen állandó.
Az ügyfelek szinkronizálva vagy aszinkron módon hívhatják meg a ZwCommitTransaction és a ZwRollbackTransaction parancsot. Ha az ügyfelek szinkron módon hívják meg ezeket a rutinokat, a rutinok csak a véglegesítési vagy visszaállítási művelet befejeződéséig térnek vissza.
A tranzakciók véglegesítésével és visszaállításával kapcsolatos további információkért lásd: Tranzakcióműveletek kezelése.
Zárja be a tranzakció-objektum leíróját.
Miután az ügyfél befejezte a tranzakció feldolgozását, meg kell hívnia a ZwClose-t a tranzakcióobjektum leírójának bezárásához
A TPS több erőforrás-kezelőt is tartalmazhat. Ha egy ügyfél tranzakciója több erőforráson , például két olyan adatbázison végzett műveleteket tartalmaz, amelyeket két erőforrás-kezelő támogat, az ügyfél általában a következőket hajtja végre:
Minden tranzakcióhoz egyetlen tranzakcióobjektumot hoz létre.
Átadja a tranzakcióobjektum azonosítóját az egyes erőforrás-kezelőknek.
Műveleteket hajt végre az egyes adatbázisokon az egyes erőforrás-kezelők felületének meghívásával.
Véglegesíti a tranzakciót, ha az összes művelet hiba nélkül befejeződött, vagy ha hiba történt, visszaállítja a tranzakciót.
Ha a TPS egy kiváló tranzakciókezelőt tartalmaz, a tranzakciós ügyfelek általában nem hívják meg a KTM-et. A kiváló tranzakciókezelőkről és ügyfeleikről további információt a Kiváló tranzakciókezelő létrehozása című témakörben talál.
A tranzakciós ügyfelek meghívhatják a ZwSetInformationTransactiont a tranzakcióspecifikus információk megadásához. Az ügyfél például beállíthat egy időtúllépési értéket a tranzakcióhoz, vagy megadhat egy leíró karaktersztringet. Az ügyfelek meghívhatják a ZwQueryInformationTransactiont a tranzakcióval kapcsolatos információk lekéréséhez. Egy ügyfél például meghívhatja ezt a rutint annak megállapításához, hogy egy tranzakció véglegesítése vagy visszaállítása megtörtént-e.