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 következőkre vonatkozik:SQL Server
A tranzakciós előléptetési egy egyszerű helyi tranzakciót ír le, amely szükség szerint automatikusan előléptethető egy teljes körűen terjeszthető tranzakcióra. Ha egy felügyelt tárolt eljárás meghívása egy adatbázis-tranzakción belül történik a kiszolgálón, a rendszer egy helyi tranzakció kontextusában futtatja a közös nyelvi futtatókörnyezeti (CLR-) kódot. Ha egy adatbázistranzakción belül megnyit egy kapcsolatot egy távoli kiszolgálóval, a távoli kiszolgálóhoz való csatlakozás szerepel az elosztott tranzakcióban, és a helyi tranzakció automatikusan előléptethető egy elosztott tranzakcióra.
A tranzakció-előléptetés tehát minimálisra csökkenti az elosztott tranzakciók többletterhelését azáltal, hogy elhalasztja az elosztott tranzakciók létrehozását, amíg szükség nem lesz rá. A tranzakció-előléptetés automatikus, ha az Enlist
kulcsszóval lett engedélyezve, és nem igényel beavatkozást a fejlesztőtől. Az SQL Serverhez készült .NET-keretrendszer adatszolgáltatója támogatja a tranzakció-előléptetést, amely a .NET-keretrendszer System.Data.SqlClient
névtér osztályain keresztül történik.
Az Enlist kulcsszó
Egy SqlConnection
objektum ConnectionString
tulajdonsága támogatja a Enlist
kulcsszót, amely jelzi, hogy System.Data.SqlClient
észleli-e a tranzakciós környezeteket, és automatikusan bevonja a kapcsolatot egy elosztott tranzakcióba. Ha ez a kulcsszó igaz (alapértelmezett) értékre van állítva, a kapcsolat automatikusan megjelenik a nyitó szál aktuális tranzakciós környezetében. Ha ez a kulcsszó hamis értékre van állítva, a SqlClient
kapcsolat nem működik együtt elosztott tranzakcióval. Ha Enlist
nincs megadva a kapcsolati sztringben, a rendszer automatikusan felvesz egy elosztott tranzakcióba, ha a kapcsolat megnyitásakor észlelnek egyet.
Elosztott tranzakciók
Az elosztott tranzakciók általában jelentős rendszererőforrásokat használnak fel. A Microsoft Distributed Transaction Coordinator (MS DTC) kezeli az ilyen tranzakciókat, és integrálja az ezekben a tranzakciókban elért összes erőforrás-kezelőt. A tranzakciós előléptetés viszont egy System.Transactions
tranzakció speciális formája, amely gyakorlatilag egy egyszerű SQL Server-tranzakcióra delegálja a munkát.
System.Transactions
, System.Data.SqlClient
és SQL Server koordinálja a tranzakció kezelésével kapcsolatos munkát, és szükség szerint egy teljes elosztott tranzakcióra terjeszti azt.
A tranzakció-előléptetés előnye, hogy ha egy kapcsolat aktív TransactionScope
tranzakcióval van megnyitva, és nincs más kapcsolat, a tranzakció egyszerű tranzakcióként véglegesít, ahelyett, hogy a teljes elosztott tranzakció többletterhelésével jár. A TransactionScope
további információ: System.Transactionshasználata.