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.
Transakční klient je komponenta systému zpracování transakcí (TPS), která používá exportované rozhraní správce prostředků pro přístup k prostředku, jako je databáze, kterou správce prostředků podporuje.
Klient obvykle vytvoří transakci, provede sadu databázových operací a pak potvrdí transakci, aby operace byly trvalé. Pokud klient narazí na chybu, může transakci vrátit zpět, aby odstranil její operace, místo aby transakci potvrdil.
Transakční klient, který používá KTM v režimu jádra, obvykle musí pro každou transakci provádět následující úlohy:
Vytvořte objekt transakce.
Volání ZwCreateTransaction vytvoří objekt transakce, poskytuje popisovač objektu a přiřadí identifikátor objektu (GUID), který klient může předat správci prostředků k identifikaci transakce.
Získejte identifikátor objektu transakce.
Klient může volat ZwQueryInformationTransaction získat identifikátor objektu.
Předejte identifikátor objektu transakce správci prostředků.
Klient obvykle volá exportované rozhraní správce prostředků k otevření komunikační cesty ke správci prostředků a ke spojení této cesty s transakcí. Správce prostředků může například poskytnout rutinu CreateDataObject , která je podobná rutině, kterou popisuje téma Principy komponent TPS .
Proveďte operace, které mají být zahrnuty do transakce.
Klient obvykle volá rozhraní správce prostředků pro přístup k prostředkům správce prostředků. Klient správce databáze může například číst a zapisovat do databáze.
Potvrďte nebo vraťte transakci zpět.
Pokud jsou všechny operace prostředků úspěšné, klient musí zavolat ZwCommitTransaction, aby se operace staly trvalými. Pokud operace selže, klient musí místo ZwCommitTransaction volat ZwRollbackTransaction. Pokud například klient správce databáze zjistí, že jedna z řad operací zápisu selhala, klient musí volat ZwRollbackTransaction , aby se žádná operace zápisu stala trvalou.
Klienti mohou volat ZwCommitTransaction a ZwRollbackTransaction synchronně nebo asynchronně. Pokud klienti tyto rutiny volají synchronně, rutiny se nevrátí, dokud se operace potvrzení nebo vrácení zpět nedokončí.
Další informace o tom, jak potvrdit a vrátit transakce zpět, naleznete v tématu Zpracování operací transakcí.
Zavřete popisovač objektu transakce.
Jakmile klient dokončí zpracování transakce, musí zavolat ZwClose, aby zavřel popisovač objektu transakce.
TPS může zahrnovat více než jednoho správce zdrojů. Pokud transakce klienta zahrnuje operace s více prostředky, jako jsou dvě databáze, které podporují dva správci prostředků, klient obvykle provede následující:
Vytvoří jeden objekt transakce pro každou transakci.
Předá identifikátor objektu transakce každému správci prostředků.
Provádí operace s každou databází voláním rozhraní správce prostředků.
Potvrdí transakci, pokud se všechny operace dokončily bez chyb, nebo vrátí zpět transakci, pokud byla zjištěna chyba.
Pokud váš čip TPS obsahuje nadřízeného správce transakcí, klienti transakcí obvykle nevolají KTM. Další informace o nadřízených správcích transakcí a jejich klientech naleznete v tématu Vytvoření superior transaction Manager.
Transakční klienti mohou volat ZwSetInformationTransaction nastavit informace specifické pro transakce. Klient může například nastavit hodnotu časového limitu pro transakci nebo zadat popisný znakový řetězec. Klienti mohou volat ZwQueryInformationTransaction k načtení informací o transakci. Klient může například volat tuto rutinu a určit, zda byla transakce potvrzena nebo vrácena zpět.