Dela via


Funktioner som tillhandahålls av System.Transactions

I det här avsnittet beskrivs hur du kan använda de funktioner som tillhandahålls av System.Transactions namnområdet för att skriva ett eget transaktionsprogram och en resurshanterare. Mer specifikt beskriver det här avsnittet hur du skapar och deltar i en transaktion (lokal eller distribuerad) med en eller flera deltagare.

Översikt över System.Transactions

Infrastrukturen som tillhandahålls av klasserna i System.Transactions namnområdet gör transaktionell programmering enkel och effektiv genom att stödja transaktioner som initieras i SQL Server, ADO.NET, Message Queuing (MSMQ) och Microsoft Distributed Transaction Coordinator (MSDTC). Namnområdet System.Transactions innehåller både en explicit programmeringsmodell baserad på Transaction klassen, samt en implicit programmeringsmodell med hjälp av TransactionScope klassen, där transaktioner hanteras automatiskt av infrastrukturen. Mer information om hur du skapar ett transaktionsprogram med dessa två modeller finns i Skriva ett transaktionsprogram.

Namnområdet System.Transactions innehåller också typer som du kan använda för att implementera en resurshanterare. En resurshanterare hanterar varaktiga eller flyktiga data som används i en transaktion och arbetar i samarbete med transaktionshanteraren för att ge programmet en garanti för atomitet och isolering. Transaktionshanteraren som tillhandahålls av System.Transactions infrastrukturen stöder transaktioner som involverar flera flyktiga resurser eller en enda beständig resurs. Mer information om hur du implementerar en resurshanterare finns i Implementera en Resource Manager.

Transaktionshanteraren hanterar också transparent eskalering av lokala transaktioner till distribuerade transaktioner genom att samordna med en diskbaserad transaktionshanterare som DTC när en ytterligare beständig resurshanterare registrerar sig med en transaktion. Det finns två viktiga sätt som System.Transactions infrastrukturen ger bättre prestanda på.

Namnområdet System.Transactions definierar tre förtroendenivåer – AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) och fullständigt förtroende – som begränsar åtkomsten till de typer av resurser som den exponerar. Mer information om de olika förtroendenivåerna finns i Säkerhetsförtroendenivåer för åtkomst till resurser.

I det här avsnittet

Skriva ett transaktionsprogram

Namnområdet System.Transactions innehåller två modeller för att skapa transaktionsprogram. Implementeringen av en implicit transaktion med transaktionsomfånget beskriver hur System.Transactions namnområdet stöder skapandet av implicita transaktioner med hjälp av TransactionScope klassen.

Implementeringen av en explicit transaktion med CommittableTransaction beskriver hur System.Transactions namnområdet stöder skapande av explicita transaktioner med hjälp av CommittableTransaction klassen.

Mer information om hur du skriver ett transaktionsprogram finns i Skriva ett transaktionsprogram.

Implementera en Resource Manager

Information om hur du implementerar en resurshanterare som kan delta i en transaktion finns i Implementera en Resource Manager. Det här avsnittet beskriver hur du registrerar en resurs, genomför en transaktion, återställning efter fel och metodtips för optimering.