Tranzakció visszaállítása

A munkafolyamat a tranzakció automatikusan befejeződik a befejezés időpontja a TransactionScope vagy TransactedReceiveScope Amikor a legkülső tranzakció kezelt kivétel terjed át a határt, a régió tett kifejezett rollback tranzaktsii.Odnako fordulhat elő, ha egy kifejezett rollback értelme végezni anélkül isklyuchenie.V ebben az esetben, egyéni visszaállítási műveletet (mint ebben a mintát) használhat a külső tranzakció megszakítására, és további okot adhat a kivételre.

A RollbackActivity művelet egy NativeActivity művelet. mert ahhoz való hozzáférést, a kizárási tulajdonságainak RuntimeTransactionHandle külső leíró .Az eljárás végrehajtása akció leíró RuntimeTransactionHandle fogadja és ellenőrzi annak értékét. Érték null azt jelzi, hogy a hatás nélkül használunk külső időt vypolneniya.Zatem tranzakció vett tranzakciós azonos vizsgálati érték null .Vneshny RuntimeTransactionHandle leíró lehet beszerezni, általában anélkül, hogy elindítja a tranzakciót vypolneniya.Zatem idő tranzakció megszakad egy hívás visszagörgetéssel eljárás és használati utasításokat, vagy , vagy egy általános kivétel, amely megállapítja, hogy ez a művelet visszaforgatta a tranzakciót.

A demo munkafolyamat a TransactionScope osztályból áll. amely szervezet megjeleníti konzol tranzakció állapot előtt és után RollbackActivity .Megjegyzés hogy TransactionScope fog futni befejezéséig akkor is, ha a visszatérés megtörtént, a munkafolyamat nem megszakadt, mielőtt befejeződött zaprosa.Rabochy test megszakad a Ha az AbortInstanceOnTransactionFailure tulajdonság értéke alapértelmezés szerint igaz.

A minta használata

A megoldás létrehozásához nyomja meg a CTRL + SHIFT + B billentyűkombinációt.

Az alkalmazás indításához nyomja meg a CTRL + F5 billentyűkombinációt.

Kapcsolódó cikkek