トランザクション アプリケーションの作成Writing a Transactional Application

トランザクション アプリケーションのプログラマは、System.Transactions 名前空間に用意されている 2 つのプログラミング モデルを活用して、トランザクションを作成できます。As a transactional application programmer, you can take advantage of the two programming models provided by the System.Transactions namespace to create a transaction. クラスを使用Transactionすることによって明示的なプログラミングモデルを利用できます。また、 TransactionScopeクラスを使用して、トランザクションがインフラストラクチャによって自動的に管理される暗黙的なプログラミングモデルを使用することもできます。You can utilize the explicit programming model by using the Transaction class, or the implicit programming model in which transactions are automatically managed by the infrastructure, by using the TransactionScope class. 開発には、暗黙のトランザクションモデルを使用することをお勧めします。We recommend that you use the implicit transaction model for development. トランザクションスコープの使用方法の詳細については、「トランザクションスコープを使用した暗黙のトランザクションの実装」を参照してください。You can find more information on how to use a transaction scope in the Implementing an Implicit Transaction using Transaction Scope topic.

両モデルとも、プログラムが整合性の取れた状態に達した時点で、トランザクションのコミットをサポートします。Both models support committing a transaction when the program reaches a consistent state. コミットが成功すると、トランザクションは永続的にコミットされます。If the commit succeeds, the transaction is durably committed. コミットが失敗すると、トランザクションは中止されます。If the commit fails, the transaction aborts. アプリケーション プログラムがトランザクションを完了できない場合は、トランザクションを中止してその処理内容を取り消すことを試みます。If the application program cannot successfully complete the transaction, it attempts to abort and undo the transaction's effects.

このセクションの内容In This Section

トランザクションの作成Creating a Transaction

System.Transactions 名前空間には、トランザクションを作成する 2 つのモデルが用意されています。The System.Transactions namespace provides two models for creating a transaction. これらのモデルは、以下のトピックで取り上げられています。These models are covered in the following topics.

トランザクション スコープを使用した暗黙的なトランザクションの実装Implementing an Implicit Transaction using Transaction Scope

System.Transactions 名前空間がサポートする、TransactionScope クラスを使用した暗黙的なトランザクションの作成について説明します。Describes how the System.Transactions namespace supports creating implicit transactions using the TransactionScope class.

CommittableTransaction を使用した明示的なトランザクションの実装Implementing an Explicit Transaction using CommittableTransaction

System.Transactions 名前空間がサポートする、CommittableTransaction クラスを使用した明示的なトランザクションの作成について説明します。Describes how the System.Transactions namespace supports creating explicit transactions using the CommittableTransaction class.

トランザクション管理のエスカレートEscalating Transaction Management

トランザクションが別のアプリケーション ドメインにあるリソースにアクセスする必要がある場合、または別の永続的なリソース マネージャーに参加する場合は、トランザクションが MSDTC によって管理されるよう自動的にエスカレートされます。When a transaction needs to access a resource in another application domain, or if you want to enlist in another durable resource manager, the transaction is automatically escalated to be managed by the MSDTC. トランザクションのエスカレーションについては、「トランザクション管理のエスカレーション」を参照してください。Transaction escalation is covered in the Transaction Management Escalation topic.

コンカレンシーConcurrency

Dependenttransaction による同時実行の管理」のトピックでは、 DependentTransactionクラスを使用して非同期タスク間で同時実行を実現する方法を示します。The topic Managing Concurrency with DependentTransaction demonstrates how concurrency can be achieved between asynchronous tasks by using the DependentTransaction class.

COM+ 相互運用COM+ Interop

エンタープライズサービスと COM + トランザクションの相互運用性」では、分散トランザクションが com + トランザクションと対話できるようにする方法を説明します。The topic Interoperability with Enterprise Services and COM+ Transactions illustrates how you can make your distributed transactions interact with COM+ transactions.

診断Diagnostics

診断トレースは、 System.Transactionsインフラストラクチャによって生成されるトレースコードを使用して、アプリケーションのエラーをトラブルシューティングする方法について説明します。Diagnostic Traces describes how you can use the trace codes that are generated by the System.Transactions infrastructure to troubleshoot errors in your applications.

ASP.NET 内での使用Working within ASP.NET

ASP.NET でのシステムの使用」トピックでは、ASP.NET アプリケーションSystem.Transactions内でを正常に使用する方法について説明します。The Using System.Transactions in ASP.NET topic describes how you can successfully use System.Transactions inside an ASP.NET application.