TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) メソッド

定義

トランザクションに永続的な参加要素を再参加させます。Reenlists a durable participant in a transaction.

public:
 static System::Transactions::Enlistment ^ Reenlist(Guid manager, cli::array <System::Byte> ^ recoveryInfo, System::Transactions::IEnlistmentNotification ^ notification);
public static System.Transactions.Enlistment Reenlist (Guid manager, byte[] recoveryInfo, System.Transactions.IEnlistmentNotification notification);
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
Public Shared Function Reenlist (manager As Guid, recoveryInfo As Byte(), notification As IEnlistmentNotification) As Enlistment

パラメーター

resourceManagerIdentifier
Guid

リソース マネージャーを一意に識別する GuidA Guid that uniquely identifies the resource manager.

recoveryInformation
Byte[]

回復情報の追加情報を格納します。Contains additional information of recovery information.

enlistmentNotification
IEnlistmentNotification

IEnlistmentNotification を実装して通知を受け取るリソース オブジェクト。A resource object that implements IEnlistmentNotification to receive notifications.

戻り値

参加リストを示す EnlistmentAn Enlistment that describes the enlistment.

例外

recoveryInformation が無効です。recoveryInformation is invalid.

- または --or- recoveryInformation 内のトランザクション マネージャー情報が、構成済みのトランザクション マネージャーと一致しません。Transaction Manager information in recoveryInformation does not match the configured transaction manager.

または-or- RecoveryInformationSystem.Transactions によって認識されません。RecoveryInformation is not recognized by System.Transactions.

指定した resourceManagerIdentifier に対して、RecoveryComplete(Guid) が既に呼び出されています。RecoveryComplete(Guid) has already been called for the specified resourceManagerIdentifier. 再参加が拒否されました。The reenlistment is rejected.

resourceManagerIdentifier が、recoveryInformation 内で指定した回復情報の内容と一致しません。The resourceManagerIdentifier does not match the content of the specified recovery information in recoveryInformation.

注釈

重要

信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。Calling this method with untrusted data is a security risk. このメソッドは信頼されたデータでのみ呼び出してください。Call this method only with trusted data. 詳しくは、「Data Validation」(データの入力規則) を参照してください。For more information, see Data Validation.

リソース マネージャーは、リソース障害の後にトランザクション参加要素を再参加させることにより、トランザクションの永続参加リストの解決を容易にします。A resource manager facilitates resolution of durable enlistments in a transaction by reenlisting the transaction participant after resource failure.

resourceManagerIdentifierパラメーターは、リソースに障害が発生した場合にトランザクションの参加者に一貫したラベルを付けるために使用されます。The resourceManagerIdentifier parameter is used to consistently label the participant of a transaction in the event of a resource failure. Reenlistメソッドを呼び出す場合、リソースマネージャーは、最初にresourceManagerIdentifier参加リストTransactionExceptionでメソッドをEnlistDurable呼び出したときと同じように指定する必要があります。そうしないと、がスローされます。When calling the Reenlist method, the resource manager must provide the same resourceManagerIdentifier as it used when it originally called the EnlistDurable method during enlistment, or a TransactionException is thrown.

参加要素がこのメソッドを使用して再参加すると、トランザクションの結果に対応した IEnlistmentNotification のフェーズ 2 のメソッド (つまり、CommitRollback、または InDoubt) が必要に応じて呼び出されます。When a participant is reenlisted using this method, the phase 2 methods of IEnlistmentNotification that correspond to the transaction's outcome (that is, Commit , Rollback or InDoubt ) are called as appropriate.

参加要素が正常に参加した後、を呼び出しRecoveryCompleteて回復を完了する必要があります。After the participants are successfully reenlisted, you should then call RecoveryComplete to complete the recovery.

このメソッドは、リソースマネージャーが障害から再起動した場合にのみ呼び出す必要があります。You should only call this method when a resource manager restarts from failure. また、2 フェーズ コミットの最初の準備フェーズ中に、リソース マネージャーによってログ記録された未解決トランザクションのみを再参加させる必要があります。In addition, you should only reenlist unresolved transactions logged by a resource manager during the initial Prepare phase of a two-phase commit. 無効な時間にこのメソッドを呼び出した場合、間違った結果が生成される可能性があります。Any attempt to call this method at invalid times can produce erroneous results.

トランザクションマネージャーで障害が発生した場合、2フェーズコミットプロトコルのフェーズ1で参加リストPreparedに対してメソッドを呼び出した後で、resource manager が復旧を短時間実行した場合、 InDoubtリソースマネージャーはまたはを受け取ることがあります。Rollbackコールバック。If the transaction manager fails, and your resource manager performs recovery only a short time after you called the Prepared method on an enlistment in phase 1 of the Two-Phase Commit protocol, your resource manager might either receive the InDoubt or Rollback callback.

回復の詳細については、「回復の実行」を参照してください。For more information on recovery, see Performing Recovery.

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

適用対象

こちらもご覧ください