System.Transactions 名前空間

独自のトランザクション アプリケーションとリソース マネージャーを記述するクラスが含まれます。 具体的には、1 つまたは複数の参加要素を含むローカル トランザクションまたは分散トランザクションを作成し、参加できます。

クラス

CommittableTransaction

コミットできるトランザクションを示します。

DependentTransaction

トランザクションの作業に関してアプリケーションが停止するまで、トランザクションをコミットできないようにする、トランザクションの複製を記述します。 このクラスは継承できません。

DistributedTransactionPermission

トランザクションの管理を MSDTC にエスカレートする場合に、System.Transactions が要求するアクセス許可。 このクラスは継承できません。

DistributedTransactionPermissionAttribute

DistributedTransactionPermission のセキュリティ アクションを、宣言セキュリティを使用してコードに適用できるようにします。 このクラスは継承できません。

Enlistment

トランザクションの最終フェーズにおいて、トランザクションに参加している参加要素とトランザクション マネージャーの間の通信を容易にします。

PreparingEnlistment

トランザクションの準備フェーズにおいて、参加するトランザクションの参加要素とトランザクション マネージャーの間の通信を容易にします。

SinglePhaseEnlistment

SinglePhaseCommit(SinglePhaseEnlistment) 通知を受け取ったときに、単一フェーズ コミットに参加している参加要素とトランザクション マネージャーの間の通信を容易にする一連のコールバックを提供します。

SubordinateTransaction

処理を代行させることのできる非ルート トランザクションを表します。 このクラスは継承できません。

Transaction

トランザクションを表します。

TransactionAbortedException

既にロールバックされているトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが中止された場合にスローされる例外。

TransactionEventArgs

トランザクション イベントである DistributedTransactionStartedTransactionCompleted に関するデータを提供します。

TransactionException

新しい作業を受け入れないトランザクションで作業を試行したときにスローされる例外。

TransactionInDoubtException

未決定のトランザクションを操作しようとした場合や、トランザクションをコミットしようとしたときにトランザクションが InDoubt になった場合にスローされる例外。

TransactionInformation

トランザクションに関する追加情報を提供します。

TransactionInterop

MSDTC、COM+、または System.EnterpriseServices とやり取りするために以前記述されたコンポーネントと System.Transactions との対話を容易にします。 このクラスは継承できません。

TransactionManager

トランザクション管理に使用するメソッドを格納します。 このクラスは継承できません。

TransactionManagerCommunicationException

この例外は、リソース マネージャーがトランザクション マネージャーと通信できない場合にスローされます。

TransactionPromotionException

上位変換が失敗した場合にスローされる例外。

TransactionScope

コード ブロックをトランザクションにします。 このクラスは継承できません。

構造体

TransactionOptions

トランザクション動作を指定する追加情報を格納します。

インターフェイス

IDtcTransaction

DTC トランザクションを説明します。

IEnlistmentNotification

リソース マネージャーが参加の登録時にトランザクション マネージャーに対して 2 フェーズ コミット通知コールバックを提供するために実装する必要があるインターフェイスについて説明します。

IPromotableSinglePhaseNotification

リソース マネージャー内部の非分散トランザクションのコミット デリゲートとして機能するオブジェクトを示します。

ISimpleTransactionSuperior

ルート トランザクションではないが、MSDTC で管理するためにエスカレートできるトランザクションを表します。

ISinglePhaseNotification

トランザクションに参加するための単一フェーズ コミットの最適化をサポートしているリソース オブジェクトについて説明します。

ITransactionPromoter

必要に応じて、MSDTC で管理するためにエスカレートできる、既存のトランザクションの処理を代行させるトランザクションを記述します。

列挙型

DependentCloneOption

作成する依存トランザクションの種類を制御します。

EnlistmentOptions

準備フェーズにおいて、オブジェクトをトランザクションに参加させるかどうかを判断します。

EnterpriseServicesInteropOption

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

IsolationLevel

トランザクションの分離レベルを指定します。

TransactionScopeAsyncFlowOption

スレッドの継続の間で TransactionScope に対するトランザクション フローが有効になっているかを指定します。

TransactionScopeOption

トランザクション スコープを作成するための追加オプションを提供します。

TransactionStatus

分散トランザクションの現在のステータスを記述します。

代理人

HostCurrentTransactionCallback

ホスト環境が Current の独自の既定概念を提供するための機構を用意します。

TransactionCompletedEventHandler

TransactionCompleted クラスの Transaction イベントを処理するメソッドを表します。

TransactionStartedEventHandler

DistributedTransactionStarted クラスの TransactionManager イベントを処理するメソッドを表します。

注釈

このインフラストラクチャにより、 System.Transactions SQL Server、ADO.NET、MSMQ、Microsoft 分散トランザクションコーディネーター (MSDTC) で開始されたトランザクションをサポートすることで、プラットフォーム全体でトランザクションプログラミングがシンプルで効率的になります。 このクラスには、クラスに基づく明示的なプログラミングモデルと、 Transaction TransactionScope トランザクションがインフラストラクチャによって自動的に管理されるクラスを使用した暗黙的なプログラミングモデルが用意されています。 開発には、より簡単な暗黙的なモデルを使用することを強くお勧めします。 開始するには、「 トランザクションスコープを使用した暗黙的なトランザクションの実装 」を参照してください。 トランザクションアプリケーションの作成の詳細については、「 トランザクションアプリケーションの作成」を参照してください。

System.Transactions には、リソースマネージャーを実装するための型も用意されています。 インフラストラクチャにネイティブのトランザクションマネージャーを使用すると、 System.Transactions 揮発性リソースまたは1つの永続的なリソースの参加が、効率的にコミットまたはロールバックできます。 リソースマネージャーの実装の詳細については、「 リソースマネージャーの実装」を参照してください。

また、トランザクションマネージャーは、追加の持続性のあるリソースマネージャーがトランザクションに参加するときに、DTC のようなディスクベースのトランザクションマネージャーによって調整することによって、ローカルトランザクションを分散トランザクションに透過的にエスカレートします。 System.Transactions インフラストラクチャでは、主に 2 つの方法でパフォーマンスを向上させています。

  • 動的エスカレーション。これは、 System.Transactions インフラストラクチャが実際にトランザクションに必要な場合にのみ MSDTC を使用することを意味します。 この領域の詳細については、「 トランザクション管理のエスカレーション 」を参照してください。

  • 昇格可能参加リスト。これにより、データベースなどのリソースが、トランザクションに参加している唯一のエンティティである場合に、トランザクションの所有権を取得できます。 その後、必要に応じて、 System.Transactions インフラストラクチャはトランザクションの管理を MSDTC にエスカレートすることができます。 これにより、MSDTC の使用頻度をさらに減らすことができます。 この領域の詳細については、「 単一フェーズコミットと昇格可能単一フェーズ通知を使用した最適化 」を参照してください。

System.Transactions は、公開するリソースの種類に対するアクセスを制限する3つの信頼レベルを定義します。 具体的には 、system.object アセンブリは、 AllowPartiallyTrustedCallers 属性 (APTCA) でマークされているため、部分的に信頼されているコードから呼び出すことができます。 この属性は基本的に、LinkDemand アクセス許可セットの暗黙的な FullTrust を削除します。削除しない場合、これは各種類のパブリックにアクセスできるメソッドに自動的に配置されます。 ただし、種類やメンバーによっては、さらに強力なアクセス許可が必要となります。

次に示すのは、部分的に信頼されるコードによって呼び出されない型とメンバーの一覧です。これらは、次の宣言型セキュリティ属性で修飾されています。

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

EnlistDurable (トランザクション)

Transaction.enlistpromotablesinglephase (トランザクション)

システムトランザクションの相互運用

DistributedTransactionStarted (システムトランザクション)

System.string. HostCurrentTransactionCallback

Reenlist (システムトランザクション)

システムトランザクションの完了

システムトランザクション (system.string、system.string、system.string、またはの各サービスの相互に処理する場合) の場合。

M:System.Transactions.TransactionScope.TransactionScope (システムトランザクションのオプション、システムトランザクションのオプション、システムのトランザクションの処理、およびサービスの処理)

さまざまな信頼レベルの詳細については、「リソースへのアクセス時のセキュリティ信頼レベル」を参照してください。

コア開発 Technologies\Data Access\ トランザクション処理 \

名前空間の使用方法の詳細については、 System.Transactions ドキュメントの「Core Development Technologies\Data Access\ Transaction processing」セクションにある概念ドキュメントの トランザクション処理に関する記事を参照してください \ 。 詳細については、次のトピックを参照してください。

システムトランザクションによって提供される機能

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