Funkce poskytované systémem System.Transactions

Tato část popisuje, jak můžete pomocí funkcí poskytovaných jmenným prostorem System.Transactions napsat vlastní transakční aplikaci a řízení prostředků. Konkrétně se v této části dozvíte, jak vytvořit transakci (místní nebo distribuovanou) s jedním nebo více účastníky a účastnit se této transakce.

Přehled System.Transactions

Infrastruktura poskytovaná třídami v System.Transactions oboru názvů usnadňuje transakční programování a zefektivňuje ho tím, že podporuje transakce zahájené v SQL Serveru, ADO.NET, Fronty zpráv (MSMQ) a Microsoft Distributed Transaction Coordinator (MSDTC). Obor System.Transactions názvů poskytuje explicitní programovací model založený na Transaction třídě i implicitní programovací model pomocí TransactionScope třídy, ve kterém transakce jsou automaticky spravovány infrastrukturou. Další informace o tom, jak vytvořit transakční aplikaci pomocí těchto dvou modelů, naleznete v tématu Zápis transakční aplikace.

Názvový prostor System.Transactions také poskytuje typy, které lze použít k implementaci správce prostředků. Správce prostředků spravuje trvalá nebo nestálá data používaná v transakci a pracuje ve spolupráci se správcem transakcí, aby aplikaci poskytl záruku atomicity a izolace. Správce transakcí poskytovaný infrastrukturou System.Transactions podporuje transakce zahrnující více nestálých prostředků nebo jeden trvalý prostředek. Další informace o implementaci správce prostředků naleznete v tématu Implementace Resource Manageru.

Správce transakcí také bez problémů eskaluje místní transakce na distribuované transakce tím, že se koordinuje se správcem transakcí na disku, jako je DTC, když se další trvalý správce prostředků připojí k transakci. Infrastruktura poskytuje lepší výkon dvěma klíčovými způsoby System.Transactions .

  • Dynamická eskalace, která zajišťuje, aby System.Transactions infrastruktura zapojovala pouze MSDTC, když transakce pokrývá více distribuovaných prostředků. Další informace o dynamické eskalaci. viz Téma Eskalace správy transakcí .

  • Propagační zařazení, které umožňuje prostředku, jako je databáze, převzít vlastnictví transakce, pokud se jedná o jedinou entitu, která se účastní transakce. Později, pokud je to potřeba, může infrastruktura stále eskalovat správu transakce na MSDTC. Tím se dále snižuje pravděpodobnost použití MSDTC. Promotable Enlistments jsou podrobně popsány v tématuOptimalizace pomocí jednofázového potvrzení a promotovatelného jednofázového oznámení.

Obor System.Transactions názvů definuje tři úrovně důvěryhodnosti – AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) a plná důvěra – které omezují přístup k typům prostředků, které poskytuje. Další informace o různých úrovních důvěry naleznete v části Úrovně důvěry zabezpečení při přístupu k prostředkům.

V této části

Vývoj transakční aplikace

Obor System.Transactions názvů poskytuje dva modely pro vytváření transakčních aplikací. Implementace implicitní transakce pomocí oboru transakce popisuje, jak System.Transactions obor názvů podporuje vytváření implicitních transakcí pomocí TransactionScope třídy.

Implementace explicitní transakce pomocí CommittableTransaction popisuje, jak System.Transactions obor názvů podporuje vytváření explicitních transakcí pomocí CommittableTransaction třídy.

Další témata týkající se psaní transakční aplikace naleznete v tématu Psaní transakční aplikace.

Implementace správce prostředků

Pokud chcete implementovat správce prostředků, který se může účastnit transakce, přečtěte si téma Implementace Resource Manageru. Tato část popisuje zařazení prostředku, potvrzení transakce, obnovení po selhání a osvědčené postupy optimalizace.