Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir kaynak yöneticisi, işlem istemcisi veya KTM, işlemin işlenmemesi gerektiğini belirlerse (genellikle bir hata algılanması nedeniyle) işlemi geri alabilir.
Bir işlemi geri almak için kaynak yöneticisi ZwRollbackEnlistmentçağırabilir. Kaynak yöneticisi bir işleme kaydolmak için ZwCreateEnlistment çağırdıktan sonra, ZwPrepareCompleteçağırmadan önce işlemi geri alabilir.
İşlem istemcileri, ZwRollbackTransactionçağırarak işlemlerini geri alabilir. İşlem istemcisi bir işlem oluşturmak için ZwCreateTransaction çağırdıktan sonra, ZwCommitTransactionçağırmadan önce işlemi geri alabilir.
Buna ek olarak, işlem istemcisi ZwSetInformationTransactionçağırarak işlem için zaman aşımı değeri ayarlayabilir. KTM, belirtilen süre içinde işleme alınmazsa işlemi geri alır.
ZwRollbackEnlistment veya ZwRollbackTransaction çağrısı yapıldığında ya da bir zaman aşımı değeri aşıldığında, KTM tüm kaynak yöneticilerine TRANSACTION_NOTIFY_ROLLBACK bildirimi gönderir.
Her kaynak yöneticisi bir TRANSACTION_NOTIFY_ROLLBACK bildirimi aldığında aşağıdakileri yapmalıdır:
İşlemin verilerini, kaynak yöneticisinin işleme kaydolmadan önceki durumuna geri yükleyin.
Genellikle bir kaynak yöneticisi, işlemin kaydedilen ilk verilerini günlük akışından veritabanının genel, kalıcı depolama alanına kopyalayarak işlemin verilerini geri yükler. Günlük akışlarını kullanma hakkında daha fazla bilgi için bkz. KTMile Günlük Akışlarını Kullanma .
ZwRollbackCompleteçağrısı.
ZwRollbackCompleteçağrıldıktan sonra, kaynak yöneticisi ZwClose çağrısını yaparak kayıt tutamacını kapatmalıdır.
Bir kaynak yöneticisi geri alma işlemini başlattıysa, istemciye işlemin başarısız olduğunu bildirmek için istemci arabirimini kullanması gerekir.