次の方法で共有


TransactionInterop クラス

定義

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

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
継承
TransactionInterop

注釈

このクラスは、トランザクション伝達のメソッドを提供します。 このプロセスのしくみの詳細については、「 トランザクション伝達」を参照してください。

このクラスで提供されるメソッドを使用すると、エクスポート/インポート (プッシュ モデル) とトランスミッタ/レシーバー (プル モデル) の 2 種類のトランザクション伝達に取り組むことができます。

エクスポート/インポート (プッシュ モデル) の伝達には、次の手順が含まれます。

  1. リモート コンピューターで、 メソッドを呼び出して、そのマシンのトランザクション マネージャーの "場所" を GetWhereabouts 取得します。 その後、今後の使用のために、この情報をクライアント コンピューターにキャッシュできます。

  2. 任意の方法を使用して、場所を含むデータをクライアント コンピューターに送信します。

  3. クライアント コンピューターで、 の場所を使用して、トランザクションをリモート コンピューターに "エクスポート" し、トランザクション "cookie" を生成します。 これは、リモート マシンの場所を呼び出 GetExportCookie して渡すことによって行われます。

  4. 任意の方法を使用して、トランザクション "cookie" を含むデータをリモート コンピューターに送信します。

  5. リモート コンピューターで、トランザクション "cookie" を使用して、 メソッドを呼び出してクライアント トランザクションの複製を GetTransactionFromExportCookie 取得します。

  6. リモート コンピューターで、複製トランザクションを使用して、 クラスの メソッドまたは EnlistDurable メソッドを使用してEnlistVolatileリソース マネージャーをTransaction参加させます。

トランスミッタ/レシーバー (プル モデル) の伝達には、次の手順が含まれます。

  • クライアント コンピューターで、 トランザクションを使用すると、 を呼び出 GetTransmitterPropagationTokenすことによって、対応する "伝達トークン" が生成されます。

  • 任意の優先方法を使用して、トランザクションの "伝達トークン" を含むデータをリモート コンピューターに送信します。

  • リモート コンピューターで、xref:System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken%2A を呼び出 <して、"伝達トークン" を使用してクライアント トランザクションの複製を取得します。

トランスミッタ/レシーバー モデルは、トランザクション トークンがリモート コンピューターに送信されるシナリオではパフォーマンスが向上しますが、リモート コンピューターではトランザクションを取得するために使用されない可能性があります。 これは、 が呼び出されるまで GetTransactionFromTransmitterPropagationToken トランザクションが伝達されないためです。 もう 1 つの利点は、伝達トークンを任意のリモート コンピューターに送信できるのに対し、エクスポート Cookie は、場所を指定したマシンでのみ使用できることです。

ただし、リモート トランザクション マネージャーの行方はすべての伝達トークンにカプセル化され、エクスポート/インポート モデルの対応するトランザクション Cookie よりも大きくなったことにも注意してください。

フィールド

PromoterTypeDtc

分散トランザクション プロセッサの種類。

メソッド

GetDtcTransaction(Transaction)

Transaction を表す IDtcTransaction インスタンスを取得します。

GetExportCookie(Transaction, Byte[])

トランザクション オブジェクトをエクスポート トランザクション クッキーに変換します。

GetTransactionFromDtcTransaction(IDtcTransaction)

指定した IDtcTransaction から Transaction を生成します。

GetTransactionFromExportCookie(Byte[])

指定したエクスポート クッキーから Transaction を生成します。

GetTransactionFromTransmitterPropagationToken(Byte[])

指定したトランスミッター伝達トークンから Transaction インスタンスを生成します。

GetTransmitterPropagationToken(Transaction)

指定した Transaction に伝達トークンを生成します。

GetWhereabouts()

System.Transactions が使用する分散トランザクション マネージャーの位置情報を取得します。

適用対象