TransactionInterop TransactionInterop TransactionInterop TransactionInterop Class

定義

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.

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

注釈

このクラスは、トランザクションの伝達のためのメソッドを提供します。This class provides methods for transaction propagation. このプロセスの動作の詳細については、「トランザクションの伝達」を参照してください。For more information on how this process works, see Transaction Propagation.

このクラスに用意されているメソッドを使用して、2種類のトランザクションの伝達、エクスポート/インポート (プッシュモデル) と送信側/受信側 (プルモデル) に参加できます。Using the methods provided by this class, you can engage in two types of transaction propagations, Export/Import (push model) and Transmitter/Receiver (pull model).

エクスポート/インポート (プッシュモデル) の伝達には、次の手順が含まれます。The Export/Import (push model) propagation involves these steps,

  1. リモートコンピューターで、 GetWhereaboutsメソッドを呼び出して、そのコンピューターのトランザクションマネージャーの "行き先" を取得します。On the remote machine, obtain the "whereabouts" of the transaction manager of that machine by calling the GetWhereabouts method. その後、将来の使用に備えて、この情報をクライアントコンピューターにキャッシュすることができます。You can then cache this piece of information on the client machine for future usage.

  2. 任意の方法を使用して、行き先を含むデータをクライアントコンピューターに送信するSend the data containing the whereabouts to the client machine using any preferred method

  3. クライアントコンピューターで、所在地を使用してトランザクションをリモートコンピューターに "エクスポート" し、トランザクション "cookie" を生成します。On the client machine, use the whereabouts to "export" the transaction to the remote machine and generate a transaction "cookie". これを行うにはGetExportCookie 、を呼び出し、リモートコンピューターの所在地を渡します。This is done by calling GetExportCookie and passing in the remote machine's whereabouts.

  4. 任意の推奨方法を使用して、トランザクション "cookie" を含むデータをリモートコンピューターに送信します。Send the data containing the transaction "cookie" to the remote machine using any preferred method

  5. リモートコンピューターで、トランザクション "cookie" を使用して、 GetTransactionFromExportCookieメソッドを呼び出してクライアントトランザクションの複製を取得します。On the remote machine, use the transaction "cookie" to obtain a clone of the client transaction by calling the GetTransactionFromExportCookie method.

  6. リモートコンピューターで、clone トランザクションを使用して、 EnlistVolatile TransactionクラスのメソッドまたはEnlistDurableメソッドを使用してリソースマネージャーを参加させます。On the remote machine, use the clone transaction to enlist the resource manager using the EnlistVolatile or EnlistDurable methods of the Transaction class.

送信機/受信側 (プルモデル) の伝達には、次の手順が含まれます。The Transmitter/Receiver (pull model) propagation involves these steps,

  • クライアントコンピューターで、トランザクションを使用すると、を呼び出すことによって対応する "伝達トークン" が生成されます。GetTransmitterPropagationTokenOn the client machine, using the transaction generates a corresponding "propagation token" by calling GetTransmitterPropagationToken

  • 任意の推奨方法を使用して、トランザクションの "伝達トークン" を含むデータをリモートコンピューターに送信します。Send the data containing the "propagation token" of the transaction to the remote machine using any preferred method

  • リモートコンピューターで、"伝達トークン" を使用して、を呼び出してクライアントトランザクションの複製を取得します。GetTransactionFromTransmitterPropagationTokenOn the remote machine, use the "propagation token" to obtain a clone of the client transaction by calling GetTransactionFromTransmitterPropagationToken

送信側/受信側モデルでは、トランザクショントークンがリモートコンピューターに送信される場合のパフォーマンスが向上しますが、リモートコンピューターではトランザクショントークンを使用してトランザクションを取得することはできません。The Transmitter/Receiver model provides better performance in scenarios where the transaction token is sent to a remote machine, but the remote machine may not use it to obtain the transaction. これは、が呼び出されるまでGetTransactionFromTransmitterPropagationToken 、トランザクションが伝達されないためです。This is because the transaction is not propagated until GetTransactionFromTransmitterPropagationToken is called. もう1つの利点は、伝達トークンを任意のリモートコンピューターに送信できるのに対し、エクスポートクッキーは、所在地を指定したコンピューターでのみ使用できることです。Another advantage is that the propagation token can be sent to any remote machine, while the export cookie can be used only on the machine that provided the whereabouts.

ただし、リモートトランザクションマネージャーの所在地がすべての伝達トークンにカプセル化され、エクスポート/インポートモデルの対応するトランザクション cookie よりも大きくなることにも注意してください。However, you should also note that the whereabouts of remote transaction managers are encapsulated in all the propagation tokens, making them bigger than the corresponding transaction cookies from the Export/Import model.

メモこの型はLinkDemand 、を使用して信頼されていないコードから呼び出されないようにします。 FullTrustただし、アクセス許可セットを保持するには、直前の呼び出し元だけが必要です。Note This type uses LinkDemand to prevent it from being called from untrusted code; however, only the immediate caller is required to possess the FullTrust permission set.

フィールド

PromoterTypeDtc PromoterTypeDtc PromoterTypeDtc PromoterTypeDtc

分散トランザクション プロセッサの種類。The type of the distributed transaction processor.

メソッド

GetDtcTransaction(Transaction) GetDtcTransaction(Transaction) GetDtcTransaction(Transaction) GetDtcTransaction(Transaction)

Transaction を表す IDtcTransaction インスタンスを取得します。Gets an IDtcTransaction instance that represents a Transaction.

GetExportCookie(Transaction, Byte[]) GetExportCookie(Transaction, Byte[]) GetExportCookie(Transaction, Byte[]) GetExportCookie(Transaction, Byte[])

トランザクション オブジェクトをエクスポート トランザクション クッキーに変換します。Transforms a transaction object into an export transaction cookie.

GetTransactionFromDtcTransaction(IDtcTransaction) GetTransactionFromDtcTransaction(IDtcTransaction) GetTransactionFromDtcTransaction(IDtcTransaction) GetTransactionFromDtcTransaction(IDtcTransaction)

指定した IDtcTransaction から Transaction を生成します。Generates a Transaction from a specified IDtcTransaction.

GetTransactionFromExportCookie(Byte[]) GetTransactionFromExportCookie(Byte[]) GetTransactionFromExportCookie(Byte[]) GetTransactionFromExportCookie(Byte[])

指定したエクスポート クッキーから Transaction を生成します。Generates a Transaction from the specified an export cookie.

GetTransactionFromTransmitterPropagationToken(Byte[]) GetTransactionFromTransmitterPropagationToken(Byte[]) GetTransactionFromTransmitterPropagationToken(Byte[]) GetTransactionFromTransmitterPropagationToken(Byte[])

指定したトランスミッター伝達トークンから Transaction インスタンスを生成します。Generates a Transaction instance from the specified transmitter propagation token.

GetTransmitterPropagationToken(Transaction) GetTransmitterPropagationToken(Transaction) GetTransmitterPropagationToken(Transaction) GetTransmitterPropagationToken(Transaction)

指定した Transaction に伝達トークンを生成します。Generates a propagation token for the specified Transaction.

GetWhereabouts() GetWhereabouts() GetWhereabouts() GetWhereabouts()

System.Transactions が使用する分散トランザクション マネージャーの位置情報を取得します。Gets the Whereabouts of the distributed transaction manager that System.Transactions uses.

適用対象