クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
System.Transactions 名前空間

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
System.Transactions 名前空間

更新 : 2007 年 11 月

System.Transactions 名前空間には、トランザクション アプリケーションやリソース マネージャを独自に作成するためのクラスが含まれます。具体的には、1 つまたは複数の参加要素を持つトランザクション (ローカル型または分散型) を作成したり、これらのトランザクションに参加させたりできます。

a90c30fy.alert_caution(ja-jp,VS.90).gif重要 :

この名前空間を使ったアプリケーション作成は、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 により提供される機能

トランザクション アプリケーションの作成

リソース マネージャの実装

  クラス説明
a90c30fy.pubclass(ja-jp,VS.90).gifCommittableTransactionコミットできるトランザクションを示します。
a90c30fy.pubclass(ja-jp,VS.90).gifDependentTransactionトランザクションの作業に関してアプリケーションが停止するまで、トランザクションをコミットできないようにする、トランザクションの複製を記述します。このクラスは継承できません。
a90c30fy.pubclass(ja-jp,VS.90).gifDistributedTransactionPermissionトランザクションの管理を MSDTC にエスカレートする場合に、System.Transactions が要求するアクセス許可。このクラスは継承できません。
a90c30fy.pubclass(ja-jp,VS.90).gifDistributedTransactionPermissionAttribute宣言セキュリティを使用して、DistributedTransactionPermission のセキュリティ アクションをコードに適用できるようにします。このクラスは継承できません。
a90c30fy.pubclass(ja-jp,VS.90).gifEnlistmentトランザクションの最終フェーズにおいて、トランザクションに参加している参加要素とトランザクション マネージャの間の通信を容易にします。
a90c30fy.pubclass(ja-jp,VS.90).gifPreparingEnlistmentトランザクションの準備フェーズにおいて、参加するトランザクションの参加要素とトランザクション マネージャの間の通信を容易にします。
a90c30fy.pubclass(ja-jp,VS.90).gifSinglePhaseEnlistmentSinglePhaseCommit 通知を受け取ったときに、単一フェーズ コミットに参加している参加要素とトランザクション マネージャの間の通信を容易にする一連のコールバックを提供します。
a90c30fy.pubclass(ja-jp,VS.90).gifSubordinateTransaction処理を代行させることのできる非ルート トランザクションを表します。このクラスは継承できません。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionトランザクションを表します。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionAbortedException既にロールバックされているトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが中止された場合にスローされる例外。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionEventArgsトランザクション イベントである DistributedTransactionStartedTransactionCompleted に関するデータを提供します。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionException新しい作業を受け入れないトランザクションで作業を試行したときにスローされる例外。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionInDoubtException未決定のトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが InDoubt になった場合にスローされる例外。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionInformationトランザクションに関する追加情報を提供します。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionInterop MSDTC、COM+、または System.EnterpriseServices とやり取りするために以前記述されたコンポーネントと System.Transactions との対話を容易にします。このクラスは継承できません。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionManagerトランザクション管理に使用するメソッドを格納します。このクラスは継承できません。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionManagerCommunicationExceptionリソース マネージャがトランザクション マネージャと通信できない場合にスローされる例外。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionPromotionException上位変換が失敗したときにスローされる例外。
a90c30fy.pubclass(ja-jp,VS.90).gifTransactionScopeコード ブロックをトランザクションにします。このクラスは継承できません。
  構造体説明
a90c30fy.pubstructure(ja-jp,VS.90).gifTransactionOptionsトランザクション動作を指定する追加情報を格納します。
  インターフェイス説明
a90c30fy.pubinterface(ja-jp,VS.90).gifIDtcTransactionDTC トランザクションを記述します。
a90c30fy.pubinterface(ja-jp,VS.90).gifIEnlistmentNotification参加の登録時に、トランザクション マネージャに対して 2 フェーズ コミットの通知コールバックを行うために、リソース マネージャが実装する必要のあるインターフェイスを示します。
a90c30fy.pubinterface(ja-jp,VS.90).gifIPromotableSinglePhaseNotificationリソース マネージャ内部の非分散トランザクションのコミット デリゲートとして機能するオブジェクトを示します。
a90c30fy.pubinterface(ja-jp,VS.90).gifISimpleTransactionSuperiorルート トランザクションではないが、MSDTC で管理するためにエスカレートできるトランザクションを表します。
a90c30fy.pubinterface(ja-jp,VS.90).gifISinglePhaseNotificationトランザクションに参加するための単一フェーズ コミットの最適化をサポートするリソース オブジェクトを示します。
a90c30fy.pubinterface(ja-jp,VS.90).gifITransactionPromoter必要に応じて、MSDTC で管理するためにエスカレートできる、既存のトランザクションの処理を代行させるトランザクションを記述します。
  デリゲート説明
a90c30fy.pubdelegate(ja-jp,VS.90).gifHostCurrentTransactionCallbackホスト環境が Current の独自の既定概念を提供するための機構を用意します。
a90c30fy.pubdelegate(ja-jp,VS.90).gifTransactionCompletedEventHandlerTransaction クラスの TransactionCompleted イベントを処理するメソッドを表します。
a90c30fy.pubdelegate(ja-jp,VS.90).gifTransactionStartedEventHandlerTransactionManager クラスの DistributedTransactionStarted イベントを処理するメソッドを表します。
  列挙体説明
a90c30fy.pubenumeration(ja-jp,VS.90).gifDependentCloneOption作成する依存トランザクションの種類を制御します。
a90c30fy.pubenumeration(ja-jp,VS.90).gifEnlistmentOptions準備フェーズにおいて、オブジェクトをトランザクションに参加させるかどうかを判断します。
a90c30fy.pubenumeration(ja-jp,VS.90).gifEnterpriseServicesInteropOption分散トランザクションが COM+ トランザクションとどのようにやり取りするかを指定します。
a90c30fy.pubenumeration(ja-jp,VS.90).gifIsolationLevelトランザクションの分離レベルを指定します。
a90c30fy.pubenumeration(ja-jp,VS.90).gifTransactionScopeOptionトランザクション スコープを作成するための追加オプションを提供します。
a90c30fy.pubenumeration(ja-jp,VS.90).gifTransactionStatus分散トランザクションの現在のステータスを記述します。
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker