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

Definitie

Een duurzame deelnemer opnieuw in een transactie plaatsen.

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

Parameters

resourceManagerIdentifier
Guid

Een Guid die de resourcemanager uniek identificeert.

recoveryInformation
Byte[]

Bevat aanvullende informatie over herstelgegevens.

enlistmentNotification
IEnlistmentNotification

Een resourceobject dat wordt geïmplementeerd IEnlistmentNotification voor het ontvangen van meldingen.

Retouren

Een Enlistment die de insluiting beschrijft.

Uitzonderingen

recoveryInformation is ongeldig.

– of –

Transaction Manager-gegevens komen recoveryInformation niet overeen met de geconfigureerde transactiebeheerder.

– of –

recoveryInformation wordt niet herkend door System.Transactions.

RecoveryComplete(Guid) is al aangeroepen voor de opgegeven resourceManagerIdentifier. De nieuwe lijst wordt geweigerd.

Het resourceManagerIdentifier komt niet overeen met de inhoud van de opgegeven herstelgegevens in recoveryInformation.

Opmerkingen

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Een resourcemanager vergemakkelijkt de oplossing van duurzame verbintenissen in een transactie door de transactiedeelnemer opnieuw te betrekken na een storing in de resources.

De resourceManagerIdentifier parameter wordt gebruikt om de deelnemer van een transactie consistent te labelen in het geval van een resourcefout. Bij het aanroepen van de Reenlist methode moet de resourcemanager hetzelfde resourceManagerIdentifier opgeven als de methode die wordt gebruikt toen deze de EnlistDurable methode oorspronkelijk aanroepte tijdens het insluiten, of een TransactionException gegenereerde methode.

Wanneer een deelnemer opnieuw wordt ingelijst met deze methode, worden de methoden voor fase 2 die overeenkomen met het resultaat van IEnlistmentNotification de transactie (dat wil Commitgezegd, Rollbackof InDoubt ) zo nodig aangeroepen.

Nadat de deelnemers opnieuw zijn ingelijst, moet u vervolgens aanroepen RecoveryComplete om het herstel te voltooien.

U moet deze methode alleen aanroepen wanneer een Resource Manager opnieuw wordt opgestart na een fout. Bovendien moet u alleen niet-opgeloste transacties die zijn vastgelegd door een resourcemanager opnieuw opnemen tijdens de eerste voorbereidingsfase van een doorvoer in twee fasen. Elke poging om deze methode op ongeldige tijden aan te roepen, kan onjuiste resultaten opleveren.

Als de transactiebeheerder mislukt en uw resourcemanager slechts een korte tijd herstelt nadat u de Prepared methode hebt aangeroepen voor een opname in fase 1 van het protocol Two-Phase Commit, kan uw resourcemanager de InDoubt of Rollback callback ontvangen.

Zie Herstel uitvoeren voor meer informatie over herstel.

Van toepassing op