System.Transactions Namespace

System.Transactions 名前空間には、トランザクション アプリケーションやリソース マネージャーを独自に作成するためのクラスが含まれます。 The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. 具体的には、1 つまたは複数の参加要素を含むローカル トランザクションまたは分散トランザクションを作成し、参加できます。 Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

クラス

CommittableTransaction

コミットできるトランザクションを示します。Describes a committable transaction.

DependentTransaction

トランザクションの作業に関してアプリケーションが停止するまで、トランザクションをコミットできないようにする、トランザクションの複製を記述します。Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. このクラスは継承できません。This class cannot be inherited.

DistributedTransactionPermission

トランザクションの管理を MSDTC にエスカレートする場合に、System.Transactions が要求するアクセス許可。The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. このクラスは継承できません。This class cannot be inherited.

DistributedTransactionPermissionAttribute

DistributedTransactionPermission のセキュリティ アクションを、宣言セキュリティを使用してコードに適用できるようにします。Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. このクラスは継承できません。This class cannot be inherited.

Enlistment

トランザクションの最終フェーズにおいて、トランザクションに参加している参加要素とトランザクション マネージャーの間の通信を容易にします。Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

トランザクションの準備フェーズにおいて、参加するトランザクションの参加要素とトランザクション マネージャーの間の通信を容易にします。Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

SinglePhaseCommit(SinglePhaseEnlistment) 通知を受け取ったときに、単一フェーズ コミットに参加している参加要素とトランザクション マネージャーの間の通信を容易にする一連のコールバックを提供します。Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the SinglePhaseCommit(SinglePhaseEnlistment) notification is received.

SubordinateTransaction

処理を代行させることのできる非ルート トランザクションを表します。Represents a non-rooted transaction that can be delegated. このクラスは継承できません。This class cannot be inherited.

Transaction

トランザクションを表します。Represents a transaction.

TransactionAbortedException

既にロールバックされているトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが中止された場合にスローされる例外。The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.

TransactionEventArgs

トランザクション イベントである DistributedTransactionStartedTransactionCompleted に関するデータを提供します。Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

新しい作業を受け入れないトランザクションで作業を試行したときにスローされる例外。The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

未決定のトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが InDoubt になった場合にスローされる例外。The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.

TransactionInformation

トランザクションに関する追加情報を提供します。Provides additional information regarding a transaction.

TransactionInterop

MSDTC、COM+、または System.EnterpriseServices とやり取りするために以前記述されたコンポーネントと System.Transactions との対話を容易にします。Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. このクラスは継承できません。This class cannot be inherited.

TransactionManager

トランザクション管理に使用するメソッドを格納します。Contains methods used for transaction management. このクラスは継承できません。This class cannot be inherited.

TransactionManagerCommunicationException

この例外は、リソース マネージャーがトランザクション マネージャーと通信できない場合にスローされます。The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

上位変換が失敗した場合にスローされる例外。The exception that is thrown when a promotion fails.

TransactionScope

コード ブロックをトランザクションにします。Makes a code block transactional. このクラスは継承できません。This class cannot be inherited.

構造体

TransactionOptions

トランザクション動作を指定する追加情報を格納します。Contains additional information that specifies transaction behaviors.

インターフェイス

IDtcTransaction

DTC トランザクションを説明します。Describes a DTC transaction.

IEnlistmentNotification

リソース マネージャーが参加の登録時にトランザクション マネージャーに対して 2 フェーズ コミット通知コールバックを提供するために実装する必要があるインターフェイスについて説明します。Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.

IPromotableSinglePhaseNotification

リソース マネージャー内部の非分散トランザクションのコミット デリゲートとして機能するオブジェクトを示します。Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

ルート トランザクションではないが、MSDTC で管理するためにエスカレートできるトランザクションを表します。Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

トランザクションに参加するための単一フェーズ コミットの最適化をサポートしているリソース オブジェクトについて説明します。Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

必要に応じて、MSDTC で管理するためにエスカレートできる、既存のトランザクションの処理を代行させるトランザクションを記述します。Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

列挙型

DependentCloneOption

作成する依存トランザクションの種類を制御します。Controls what kind of dependent transaction to create.

EnlistmentOptions

準備フェーズにおいて、オブジェクトをトランザクションに参加させるかどうかを判断します。Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

分散トランザクションが COM+ トランザクションとどのようにやり取りするかを指定します。Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

トランザクションの分離レベルを指定します。Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

スレッドの継続の間で TransactionScope に対するトランザクション フローが有効になっているかを指定します。Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

トランザクション スコープを作成するための追加オプションを提供します。Provides additional options for creating a transaction scope.

TransactionStatus

分散トランザクションの現在のステータスを記述します。Describes the current status of a distributed transaction.

代理人

HostCurrentTransactionCallback

ホスト環境が Current の独自の既定概念を提供するための機構を用意します。Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

TransactionCompleted クラスの Transaction イベントを処理するメソッドを表します。Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

DistributedTransactionStarted クラスの TransactionManager イベントを処理するメソッドを表します。Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

注釈

System.Transactionsインフラストラクチャにより、トランザクション プログラミング シンプルで、プラットフォーム全体で効率的な SQL Server、ADO.NET、MSMQ、および Microsoft 分散トランザクション コーディネーター (MSDTC) で開始されたトランザクションをサポートすることで。The System.Transactions infrastructure makes transactional programming simple and efficient throughout the platform by supporting transactions initiated in SQL Server, ADO.NET, MSMQ, and the Microsoft Distributed Transaction Coordinator (MSDTC). 明示的なプログラミング モデルに基づくを提供します、Transactionクラスだけでなく、暗黙的なプログラミング モデルを使用して、TransactionScopeトランザクションを自動的にインフラストラクチャによって管理するクラス。It provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. 開発を容易に暗黙的なモデルを使用することを強くお勧めします。It is highly recommended that you use the easier implicit model for development. 最初に、次を参照してください。、実装 An Implicit Transaction Using Transaction Scopeトピック。To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. トランザクション アプリケーションの作成の詳細については、次を参照してください。 Writing A Transactional Applicationします。For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions また、リソース マネージャーを実装するための型を提供します。System.Transactions also provides types for you to implement a resource manager. ネイティブのトランザクション マネージャー、System.Transactionsインフラストラクチャが揮発性リソースまたはコミットまたはロールバック効率的にする 1 つの持続性のあるリソースの参加を許可します。The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. リソース マネージャーの実装の詳細については、次を参照してください。 Implementing A Resource Managerします。For more information on implementing a resource manager, see Implementing A Resource Manager.

トランザクション マネージャーは、透過的にも、その他の永続的リソース マネージャーがそれ自体をトランザクションに参加させたときに、DTC などのディスク ベースのトランザクション マネージャーによって調整することでローカル トランザクションを分散トランザクションをエスカレートします。The transaction manager also transparently escalates local transactions to distributed transactions by coordinating through a disk-based transaction manager like the DTC, when an additional durable resource manager enlists itself with a transaction. System.Transactions インフラストラクチャでは、主に 2 つの方法でパフォーマンスを向上させています。There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • ダイナミック エスカレーション、つまり、System.Transactionsインフラストラクチャが msdtc のみトランザクションを実際に必要な場合。Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. この領域で詳しく解説については、 Transaction Management Escalationトピック。This area is covered in depth in the Transaction Management Escalation topic.

  • 昇格可能参加リスト。これにより、データベースなどのリソースが、トランザクションに参加している唯一のエンティティである場合に、トランザクションの所有権を取得できます。Promotable Enlistments, which allows a resource, such as a database, to take ownership of the transaction if it is the only entity participating in the transaction. 後で、必要な場合は、System.Transactionsインフラストラクチャは、管理のために msdtc トランザクションをエスカレートできます。Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. これにより、MSDTC の使用頻度をさらに減らすことができます。This further reduces the chance of using the MSDTC. この領域で詳しく解説については、 Optimization を使用して 1 つのフェーズの Commit and Promotable Single Phase Notificationトピック。This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions これは、公開するリソースの種類のアクセスを制限する信頼の 3 つのレベルを定義します。System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. 具体的には、 System.Transactions付いていると、部分的に信頼されたコードによってアセンブリを呼び出すことが、AllowPartiallyTrustedCallers属性 (APTCA)。Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). この属性は基本的に、LinkDemand アクセス許可セットの暗黙的な FullTrust を削除します。削除しない場合、これは各種類のパブリックにアクセスできるメソッドに自動的に配置されます。This attribute essentially removes the implicit LinkDemand for the FullTrust permission set that is otherwise automatically placed on each publicly accessible method in each type. ただし、種類やメンバーによっては、さらに強力なアクセス許可が必要となります。However, some types and members still require stronger permissions.

型の一覧を次に、次の宣言セキュリティ属性で装飾されているため、信頼されたコードの一部によって呼び出し可能なメンバー。The following is a list of types and members that are not callable by partially trusted code because they are decorated with the following declarative security attribute:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System.Transactions.Transaction.EnlistDurableSystem.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInteropSystem.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.ReenlistSystem.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

詳細については、さまざまな信頼レベルを参照してくださいリソースへのアクセスのセキュリティ信頼レベルします。For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Core Development Technologies\Data Access\Transaction Processing\Core Development Technologies\Data Access\Transaction Processing\

使用方法の詳細については、System.Transactions名前空間には、概念説明のドキュメントを参照してくださいトランザクション処理の"Core 開発 Technologies\Data Access\Transaction 処理下にあります。\"、ドキュメントのセクション。For more information on how to use the System.Transactions namespace, you can consult the conceptual documentation Transaction Processing, located under the "Core Development Technologies\Data Access\Transaction Processing\" section in the documentation. 具体的には、次のトピックで詳細についてを見つけることができます。Specifically, you can find more information in the following topics.

System.Transactions により提供される機能Features Provided By System.Transactions

リソース マネージャーの実装Implementing A Resource Manager