TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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.