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

Definition

Återlistar en varaktig deltagare i en transaktion.

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

Parametrar

resourceManagerIdentifier
Guid

En Guid som unikt identifierar resurshanteraren.

recoveryInformation
Byte[]

Innehåller ytterligare information om återställningsinformation.

enlistmentNotification
IEnlistmentNotification

Ett resursobjekt som implementeras IEnlistmentNotification för att ta emot meddelanden.

Returer

En Enlistment som beskriver värvningen.

Undantag

recoveryInformation är ogiltigt.

-eller-

Transaktionshanterarens information i recoveryInformation matchar inte den konfigurerade transaktionshanteraren.

-eller-

recoveryInformation känns inte igen av System.Transactions.

RecoveryComplete(Guid) har redan anropats för den angivna resourceManagerIdentifier. Återlistan avvisas.

resourceManagerIdentifier matchar inte innehållet i den angivna återställningsinformationen i recoveryInformation.

Kommentarer

Important

Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.

En resurshanterare underlättar lösningen av beständiga registreringar i en transaktion genom att omregistrera transaktionsdeltagaren efter ett resursfel.

Parametern resourceManagerIdentifier används för att konsekvent märka deltagaren i en transaktion i händelse av ett resursfel. När du anropar Reenlist metoden måste resurshanteraren ange samma resourceManagerIdentifier som den använde när den ursprungligen kallade EnlistDurable metoden under enlistning, eller så genereras en TransactionException .

När en deltagare återlistas med den här metoden anropas fas 2-metoderna IEnlistmentNotification för som motsvarar transaktionens utfall (dvs Commit. , Rollbackeller InDoubt ) efter behov.

När deltagarna har återlistats bör du anropa RecoveryComplete för att slutföra återställningen.

Du bör bara anropa den här metoden när en resurshanterare startas om från ett fel. Dessutom bör du bara återregistrera olösta transaktioner som loggats av en resurshanterare under förberedelsefasen av en tvåfascommit. Alla försök att anropa den här metoden vid ogiltiga tidpunkter kan ge felaktiga resultat.

Om transaktionshanteraren misslyckas och resurshanteraren utför återställning bara en kort tid efter att du anropat Prepared metoden för en registrering i fas 1 i Two-Phase Commit-protokollet, kan resurshanteraren antingen få InDoubt eller Rollback återanrop.

Mer information om återställning finns i Utföra återställning.

Gäller för