TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Reenlists a durable participant in a transaction.
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
Parameter
- recoveryInformation
- Byte[]
Enthält zusätzliche Informationen zu Wiederherstellungsinformationen.
- enlistmentNotification
- IEnlistmentNotification
Ein Ressourcenobjekt, das zum Empfangen von Benachrichtigungen IEnlistmentNotification implementiert wird.
Gibt zurück
Eine Enlistment , die die Auflistung beschreibt.
Ausnahmen
recoveryInformation ist ungültig.
- oder -
Transaktions-Manager-Informationen recoveryInformation stimmen nicht mit dem konfigurierten Transaktions-Manager überein.
- oder -
recoveryInformation wird von System.Transactions.
RecoveryComplete(Guid) wurde bereits für die angegebene Aufgerufen resourceManagerIdentifier. Die ErneuteInlistung wird abgelehnt.
Der resourceManagerIdentifier Inhalt der angegebenen Wiederherstellungsinformationen stimmt nicht überein.recoveryInformation
Hinweise
Von Bedeutung
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Ein Ressourcenmanager erleichtert die Auflösung dauerhafter Beteiligungen in einer Transaktion, indem er den Transaktionsteilnehmer nach einem Ressourcenausfall erneut anmeldet.
Der resourceManagerIdentifier Parameter wird verwendet, um den Teilnehmer einer Transaktion im Falle eines Ressourcenfehlers konsistent zu bezeichnen. Beim Aufrufen der Reenlist Methode muss der Ressourcen-Manager dieselbe resourceManagerIdentifier Bereitstellen wie beim ursprünglichen Aufruf der Methode während der EnlistDurable Auflistung oder beim Auslösen einer TransactionException Methode.
Wenn ein Teilnehmer mit dieser Methode erneut aufgelistet wird, werden die Phase 2-Methoden IEnlistmentNotification , die dem Ergebnis der Transaktion entsprechen (d Commit. h. , , Rollbackoder InDoubt ) entsprechend aufgerufen.
Nachdem die Teilnehmer erfolgreich erneut aufgelistet wurden, sollten Sie dann aufrufen RecoveryComplete , um die Wiederherstellung abzuschließen.
Sie sollten diese Methode nur aufrufen, wenn ein Ressourcen-Manager aus einem Fehler neu gestartet wird. Darüber hinaus sollten Sie während der ersten Vorbereitungsphase eines zweistufigen Commits nur nicht aufgelöste Transaktionen erneut auflisten, die von einem Ressourcenmanager protokolliert werden. Jeder Versuch, diese Methode zu ungültigen Zeiten aufzurufen, kann zu fehlerhaften Ergebnissen führen.
Wenn der Transaktions-Manager fehlschlägt und der Ressourcen-Manager die Wiederherstellung nur kurz nach dem Aufruf der Prepared Methode für eine Auflistung in Phase 1 des Two-Phase Commit-Protokolls durchführt, erhält Der Ressourcen-Manager möglicherweise entweder den oder Rollback den InDoubt Rückruf.