トランザクションは、一連のアクションまたは操作を 1 つの不可分の実行単位にグループ化する方法を提供します。 トランザクションは、次のプロパティを持つ操作のコレクションです。
原子性。 これにより、特定のトランザクションで完了したすべての更新がコミットされて永続的になるか、すべて中止されて以前の状態にロールバックされます。
一貫性。 これにより、トランザクションの下で行われた変更は、一貫性のある状態から別の状態への変換を表します。 たとえば、当座預金口座から普通預金口座に送金するトランザクションでは、銀行口座全体の金額は変更されません。
分離。 これにより、トランザクションが他の同時実行トランザクションに属するコミットされていない変更を監視できなくなります。 分離によってコンカレンシーが抽象化され、あるトランザクションが別のトランザクションの実行に予期しない影響を与えることはできません。
耐久性。 つまり、コミットされると、障害が発生した場合にマネージド リソース (データベース レコードなど) に対する更新が永続的になります。
Windows Communication Foundation (WCF) には、Web サービス アプリケーションで分散トランザクションを作成できる豊富な機能セットが用意されています。
WCF では、サードパーティのテクノロジを使用して構築された相互運用可能な Web サービスなど、WCF アプリケーションがトランザクションを相互運用可能なアプリケーションにフローできるようにする、WS-AtomicTransaction (WS-AT) プロトコルのサポートが実装されています。 WCF では、OLE Transactions プロトコルのサポートも実装されています。これは、トランザクション フローを有効にするために相互運用機能が必要ないシナリオで使用できます。
アプリケーション構成ファイルを使用して、トランザクション フローを有効または無効にするようにバインドを構成したり、バインディングに必要なトランザクション プロトコルを設定したりできます。 さらに、構成ファイルを使用して、サービス レベルでトランザクションタイムアウトを設定できます。 詳細については、「 トランザクション フローの有効化」を参照してください。
System.ServiceModel名前空間のトランザクション属性を使用すると、次の操作を行うことができます。
ServiceBehaviorAttribute属性を使用して、トランザクションのタイムアウトと分離レベルのフィルター処理を構成します。
OperationBehaviorAttribute属性を使用してトランザクション機能を有効にし、トランザクション完了動作を構成します。
コントラクト メソッドで ServiceContractAttribute 属性と OperationContractAttribute 属性を使用して、トランザクション フローを要求、許可、または拒否します。
詳細については、「 ServiceModel トランザクション属性」を参照してください。