TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
トランザクション内の永続参加要素を再登録します。
public:
static System::Transactions::Enlistment ^ Reenlist(Guid resourceManagerIdentifier, cli::array <System::Byte> ^ recoveryInformation, System::Transactions::IEnlistmentNotification ^ enlistmentNotification);
public static System.Transactions.Enlistment Reenlist(Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
Public Shared Function Reenlist (resourceManagerIdentifier As Guid, recoveryInformation As Byte(), enlistmentNotification As IEnlistmentNotification) As Enlistment
パラメーター
- recoveryInformation
- Byte[]
回復情報の追加情報が含まれています。
- enlistmentNotification
- IEnlistmentNotification
通知を受信する IEnlistmentNotification を実装するリソース オブジェクト。
返品
参加リストを記述する Enlistment 。
例外
recoveryInformation が無効です。
-又は-
recoveryInformationのトランザクション マネージャー情報が、構成されたトランザクション マネージャーと一致しません。
-又は-
recoveryInformation は、 System.Transactionsによって認識されません。
RecoveryComplete(Guid) は、指定した resourceManagerIdentifierに対して既に呼び出されています。 再登録は拒否されます。
resourceManagerIdentifierは、recoveryInformationで指定された回復情報の内容と一致しません。
注釈
Important
信頼されていないデータを使用してこのメソッドを呼び出すことは、セキュリティ上のリスクです。 このメソッドは、信頼できるデータでのみ呼び出します。 詳細については、「すべての入力を検証する」を参照してください。
リソースマネージャーは、リソース障害後にトランザクション参加者を再参加させることで、トランザクション内の永続的な参加の解決を容易にします。
resourceManagerIdentifier パラメーターは、リソース障害が発生した場合にトランザクションの参加要素に一貫してラベルを付けるために使用されます。
Reenlist メソッドを呼び出すとき、リソース マネージャーは、最初に参加中に EnlistDurable メソッドを呼び出したとき、またはTransactionExceptionがスローされたときに使用したのと同じresourceManagerIdentifierを提供する必要があります。
この方法を使用して参加者を再登録すると、トランザクションの結果 (つまり、Commit、Rollback、またはInDoubt) に対応するIEnlistmentNotificationのフェーズ 2 メソッドが必要に応じて呼び出されます。
参加者が正常に再登録されたら、 RecoveryComplete を呼び出して復旧を完了する必要があります。
このメソッドは、リソース マネージャーがエラーから再起動した場合にのみ呼び出す必要があります。 さらに、2 フェーズ コミットの最初の準備フェーズ中にリソース マネージャーによってログに記録された未解決のトランザクションのみを再登録する必要があります。 このメソッドを無効な時刻に呼び出そうとすると、誤った結果が発生する可能性があります。
トランザクション マネージャーが失敗し、Two-Phase コミット プロトコルのフェーズ 1 の参加リストで Prepared メソッドを呼び出した後、リソース マネージャーが短時間だけ復旧を実行した場合、リソース マネージャーは InDoubt または Rollback コールバックを受け取る可能性があります。