TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Methode

Definition

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

resourceManagerIdentifiermanager
Guid

Eine Guid, die den Ressourcen-Manager eindeutig angibt.

recoveryInformationrecoveryInfo
Byte[]

Enthält zusätzliche Informationen zum Wiederherstellen.

enlistmentNotificationnotification
IEnlistmentNotification

Ein Ressourcenobjekt, das IEnlistmentNotification implementiert, um Benachrichtigungen zu empfangen.

Gibt zurück

Enlistment

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.

Gilt für

Siehe auch