Sdílet prostřednictvím


Transakce ve Windows Communication Foundation – přehled

Transakce poskytují způsob, jak seskupit sadu akcí nebo operací do jedné nedělitelné jednotky provádění. Transakce je kolekce operací s následujícími vlastnostmi:

  • Nedělitelnost. Tím se zajistí, že všechny aktualizace dokončené v rámci konkrétní transakce jsou potvrzeny a provedeny trvalé, nebo jsou všechny přerušeny a vráceny zpět do předchozího stavu.

  • Konzistence. To zaručuje, že změny provedené v rámci transakce představují transformaci z jednoho konzistentního stavu na jiný. Například transakce, která převádí peníze z kontrolového účtu na spořicí účet, nemění částku peněz v celkovém bankovním účtu.

  • Izolace. Tím zabráníte, aby transakce sledovala nepotvrzené změny patřící do jiných souběžných transakcí. Izolace poskytuje abstrakci souběžnosti a zároveň zajišťuje, že jedna transakce nemůže mít neočekávaný dopad na provádění jiné transakce.

  • Trvanlivost. To znamená, že po potvrzení budou aktualizace spravovaných prostředků (například záznamu databáze) trvalé v případě selhání.

Windows Communication Foundation (WCF) poskytuje bohatou sadu funkcí, které umožňují vytvářet distribuované transakce v aplikaci webové služby.

WCF implementuje podporu protokolu WS-AtomicTransaction (WS-AT), který umožňuje aplikacím WCF tok transakcí do interoperabilních aplikací, jako jsou interoperabilní webové služby vytvořené pomocí technologie třetích stran. WCF také implementuje podporu pro protokol OLE Transactions, který lze použít ve scénářích, kde nepotřebujete funkce vzájemné spolupráce pro povolení toku transakcí.

Konfigurační soubor aplikace můžete použít ke konfiguraci vazeb pro povolení nebo zakázání toku transakce a také nastavit požadovaný transakční protokol vazby. Kromě toho můžete nastavit vypršení časového limitu transakcí na úrovni služby pomocí konfiguračního souboru. Další informace najdete v tématu Povolení toku transakcí.

Atributy transakcí v System.ServiceModel oboru názvů umožňují provádět následující akce:

Další informace naleznete v tématu ServiceModel Transaction Attributes.

Viz také