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.
Trägt einen stabilen Teilnehmer in einer Transaktion erneut ein.
public:
static System::Transactions::Enlistment ^ Reenlist(Guid resourceManagerIdentifier, cli::array <System::Byte> ^ recoveryInformation, System::Transactions::IEnlistmentNotification ^ enlistmentNotification);
public:
static System::Transactions::Enlistment ^ Reenlist(Guid manager, cli::array <System::Byte> ^ recoveryInfo, System::Transactions::IEnlistmentNotification ^ notification);
public static System.Transactions.Enlistment Reenlist (Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
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
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
Public Shared Function Reenlist (manager As Guid, recoveryInfo As Byte(), notification As IEnlistmentNotification) As Enlistment
Parameter
- recoveryInformationrecoveryInfo
- Byte[]
Enthält zusätzliche Informationen zum Wiederherstellen.
- enlistmentNotificationnotification
- IEnlistmentNotification
Ein Ressourcenobjekt, das IEnlistmentNotification implementiert, um Benachrichtigungen zu empfangen.
Gibt zurück
Ein Enlistment, das den Eintrag beschreibt.
Ausnahmen
recoveryInformation
ist ungültig.
- oder -
Die Informationen des Transaktions-Managers in recoveryInformation
stimmen nicht mit denen des konfigurierten Transaktions-Managers überein.
- oder -
RecoveryInformation
wird von System.Transactions nicht erkannt.
RecoveryComplete(Guid) wurde bereits für den angegebenen resourceManagerIdentifier
aufgerufen. Die Neueintragung wird abgelehnt.
Der resourceManagerIdentifier
stimmt nicht mit dem Inhalt der angegebenen Wiederherstellungsinformationen in recoveryInformation
überein.
Hinweise
Wichtig
Das Aufrufen dieser Methode mit nicht vertrauenswürdigen Daten stellt ein Sicherheitsrisiko dar. Rufen Sie diese Methode nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Ein Ressourcen-Manager erleichtert das Auflösen dauerhafter Eintragungen in einer Transaktion, indem er den Transaktionsteilnehmer nach einem Fehler der Ressource neu einträgt.
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 Einlistung oder beim Auslösen einer TransactionException Methode verwenden.
Wenn ein Teilnehmer mit dieser Methode neu eingetragen wird, werden die IEnlistmentNotification-Methoden aus Phase 2, die dem Transaktionsergebnis entsprechen (d. h. Commit, Rollback oder InDoubt), 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 vom Fehler neu gestartet wird. Tragen Sie außerdem nur nicht aufgelöste Transaktionen erneut ein, die von einem Ressourcen-Manager während der anfänglichen Vorbereitungsphase eines Zweiphasencommits protokolliert wurden. Bei jedem Versuch, diese Methode zu unzulässigen Zeitpunkten aufzurufen, können falsche Ergebnisse erzeugt werden.
Wenn der Transaktions-Manager fehlschlägt, und ihr Ressourcen-Manager führt die Wiederherstellung nur kurz nach dem Aufruf der Prepared Methode für eine Liste in Phase 1 des Two-Phase Commit-Protokolls durch, kann ihr Ressourcenmanager entweder den oder Rollback den InDoubt Rückruf empfangen.
Weitere Informationen zur Wiederherstellung finden Sie unter Ausführen der Wiederherstellung.
Hinweis Diese Methode verwendet LinkDemand , um zu verhindern, dass sie nicht vertrauenswürdigen Code aufgerufen wird. Allerdings ist nur der sofortige Aufrufer erforderlich, um den FullTrust
Berechtigungssatz zu besitzen.