System.Transactions 名前空間
![]() |
---|
この名前空間を使ったアプリケーション作成は、Windows 2000、Windows XP、Windows 2003 の各プラットフォームでのみサポートされます。Windows 98 や Windows ME のプラットフォームでトランザクションを作成すると、PlatformNotSupportedException がスローされます。 |
System.Transactions インフラストラクチャは、SQL Server、ADO.NET、MSMQ、MSDTC (Microsoft Distributed Transaction Coordinator) で開始されたトランザクションをサポートすることにより、プラットフォーム全体を通じて、シンプルで効率のよいトランザクション プログラミングを可能にします。この名前空間は、Transaction クラスに基づく明示的なプログラミング モデルだけでなく、インフラストラクチャがトランザクションを自動的に管理する、TransactionScope クラスを使用した暗黙のプログラミング モデルも提供します。開発では、簡単な暗黙のモデルを使用することを強くお勧めします。暗黙のモデルを使用するには、まず「トランザクション スコープを使用した暗黙的なトランザクションの実装」を参照してください。トランザクション アプリケーションの記述の詳細については、「トランザクション アプリケーションの作成」を参照してください。
また、System.Transactions には、リソース マネージャを実装するための型が用意されています。System.Transactions インフラストラクチャがネイティブで備えるトランザクション マネージャを使用することで、揮発性リソースまたは単一の永続性リソースの参加リストを効率よくコミットしたり、ロールバックしたりできます。リソース マネージャの実装の詳細については、「リソース マネージャの実装」を参照してください。
また、トランザクション マネージャは、他の永続性リソース マネージャがそれ自体をトランザクションに参加させた場合に、DTC などのディスク ベースのトランザクション マネージャを通じて調整することにより、ローカル トランザクションを分散トランザクションへと透過的にエスカレートする機能を備えています。System.Transactions インフラストラクチャでは、主に 2 つの方法でパフォーマンスを向上させています。
-
ダイナミック発生。System.Transactions インフラストラクチャは、MSDTC をトランザクションで実際に必要となったときにのみ参加させます。この点については、「トランザクション管理の昇格」のトピックで詳しく解説されています。
-
昇格可能参加リスト。データベースなどのリソースがトランザクションに参加している唯一のエンティティである場合に、そのリソースがトランザクションの所有権を取得できます。その後、System.Transactions インフラストラクチャが必要に応じて、トランザクションの管理を MSDTC にエスカレートすることもできます。これにより、MSDTC の使用頻度をさらに減らすことができます。この点については、「単一フェーズ コミットと昇格可能な単一フェーズ通知を使用した最適化」のトピックで詳しく解説されています。
System.Transactions は、公開しているリソースの型へのアクセスを制限する 3 レベルの信頼を定義しています。具体的には、System.Transactions アセンブリは、AllowPartiallyTrustedCallers 属性 (APTCA) が適用されているため、部分的に信頼されているコードから呼び出すことができます。この属性により、FullTrust アクセス許可セットに暗黙的に適用される (つまり、各型のパブリック アクセス メソッドに対して自動的に設定される) LinkDemand が削除されます。ただし、一部の型およびメンバについては、さらに強力なアクセス許可が必要となります。
以下に示した型とメンバは、次の宣言セキュリティ属性で装飾されているため、信頼性が一部しか確認されていないコードから呼び出すことはできません。
PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")
System.Transactions.Transaction.EnlistDurable
System.Transactions.Transaction.EnlistPromotableSinglePhase
System.Transactions.TransactionInterop
System.Transactions.TransactionManager.DistributedTransactionStarted
System.Transactions.TransactionManager.HostCurrentTransactionCallback
System.Transactions.TransactionManager.Reenlist
System.Transactions.TransactionManager.RecoveryComplete
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)
各種の信頼レベルの詳細については、「リソース アクセスにおけるセキュリティ信頼レベル」を参照してください。
Core Development Technologies\Data Access\Transaction Processing\
System.Transactions 名前空間の使い方の詳細については、概念について解説したドキュメントの「トランザクション処理」(Core Development Technologies\Data Access\Transaction Processing\) を参照してください。より理解を深めるためには、次のトピックの内容を重点的に読むようにしてください。
System.Transactions で提供される機能

クラス | 説明 | |
---|---|---|
![]() | CommittableTransaction | コミットできるトランザクションを示します。 |
![]() | DependentTransaction | トランザクションの作業に関してアプリケーションが停止するまで、トランザクションをコミットできないようにする、トランザクションの複製を記述します。このクラスは継承できません。 |
![]() | DistributedTransactionPermission | トランザクションの管理を MSDTC にエスカレートする場合に、System.Transactions が要求するアクセス許可。このクラスは継承できません。 |
![]() | DistributedTransactionPermissionAttribute | 宣言セキュリティを使用して、DistributedTransactionPermission のセキュリティ アクションをコードに適用できるようにします。このクラスは継承できません。 |
![]() | Enlistment | トランザクションの最終フェーズにおいて、トランザクションに参加している参加要素とトランザクション マネージャの間の通信を容易にします。 |
![]() | PreparingEnlistment | トランザクションの準備フェーズにおいて、参加するトランザクションの参加要素とトランザクション マネージャの間の通信を容易にします。 |
![]() | SinglePhaseEnlistment | SinglePhaseCommit 通知を受け取ったときに、単一フェーズ コミットに参加している参加要素とトランザクション マネージャの間の通信を容易にする一連のコールバックを提供します。 |
![]() | SubordinateTransaction | 処理を代行させることのできる非ルート トランザクションを表します。このクラスは継承できません。 |
![]() | Transaction | トランザクションを表します。 |
![]() | TransactionAbortedException | 既にロールバックされているトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが中止された場合にスローされる例外。 |
![]() | TransactionEventArgs | トランザクション イベントである DistributedTransactionStarted と TransactionCompleted に関するデータを提供します。 |
![]() | TransactionException | 新しい作業を受け入れないトランザクションで作業を試行したときにスローされる例外。 |
![]() | TransactionInDoubtException | 未決定のトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが InDoubt になった場合にスローされる例外。 |
![]() | TransactionInformation | トランザクションに関する追加情報を提供します。 |
![]() | TransactionInterop | MSDTC、COM+、または System.EnterpriseServices とやり取りするために以前記述されたコンポーネントと System.Transactions との対話を容易にします。このクラスは継承できません。 |
![]() | TransactionManager | トランザクション管理に使用するメソッドを格納します。このクラスは継承できません。 |
![]() | TransactionManagerCommunicationException | リソース マネージャがトランザクション マネージャと通信できない場合にスローされる例外。 |
![]() | TransactionPromotionException | 上位変換が失敗したときにスローされる例外。 |
![]() | TransactionScope | コード ブロックをトランザクションにします。このクラスは継承できません。 |

インターフェイス | 説明 | |
---|---|---|
![]() | IDtcTransaction | DTC トランザクションを記述します。 |
![]() | IEnlistmentNotification | 参加の登録時に、トランザクション マネージャに対して 2 フェーズ コミットの通知コールバックを行うために、リソース マネージャが実装する必要のあるインターフェイスを示します。 |
![]() | IPromotableSinglePhaseNotification | リソース マネージャ内部の非分散トランザクションのコミット デリゲートとして機能するオブジェクトを示します。 |
![]() | ISimpleTransactionSuperior | ルート トランザクションではないが、MSDTC で管理するためにエスカレートできるトランザクションを表します。 |
![]() | ISinglePhaseNotification | トランザクションに参加するための単一フェーズ コミットの最適化をサポートするリソース オブジェクトを示します。 |
![]() | ITransactionPromoter | 必要に応じて、MSDTC で管理するためにエスカレートできる、既存のトランザクションの処理を代行させるトランザクションを記述します。 |


デリゲート | 説明 | |
---|---|---|
![]() | HostCurrentTransactionCallback | ホスト環境が Current の独自の既定概念を提供するための機構を用意します。 |
![]() | TransactionCompletedEventHandler | Transaction クラスの TransactionCompleted イベントを処理するメソッドを表します。 |
![]() | TransactionStartedEventHandler | TransactionManager クラスの DistributedTransactionStarted イベントを処理するメソッドを表します。 |

列挙体 | 説明 | |
---|---|---|
![]() | DependentCloneOption | 作成する依存トランザクションの種類を制御します。 |
![]() | EnlistmentOptions | 準備フェーズにおいて、オブジェクトをトランザクションに参加させるかどうかを判断します。 |
![]() | EnterpriseServicesInteropOption | 分散トランザクションが COM+ トランザクションとどのようにやり取りするかを指定します。 |
![]() | IsolationLevel | トランザクションの分離レベルを指定します。 |
![]() | TransactionScopeOption | トランザクション スコープを作成するための追加オプションを提供します。 |
![]() | TransactionStatus | 分散トランザクションの現在のステータスを記述します。 |
System.Transactions
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/08 19:35 UTC 版)
「基本クラスライブラリ」の記事における「System.Transactions」の解説
ローカルもしくはネットワーク相手とのトランザクション処理を提供する。
※この「System.Transactions」の解説は、「基本クラスライブラリ」の解説の一部です。
「System.Transactions」を含む「基本クラスライブラリ」の記事については、「基本クラスライブラリ」の概要を参照ください。
- system.transactionsのページへのリンク