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

Definizione

Reinserisce nell'elenco un partecipante alla transazione duraturo.

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

Parametri

resourceManagerIdentifiermanager
Guid

Struttura Guid che identifica in modo univoco il gestore delle risorse.

recoveryInformationrecoveryInfo
Byte[]

Contiene informazioni aggiuntive alle informazioni per il recupero.

enlistmentNotificationnotification
IEnlistmentNotification

Oggetto risorsa che implementa IEnlistmentNotification per ricevere le notifiche.

Restituisce

Enlistment

Classe Enlistment che descrive l'elenco.

Eccezioni

recoveryInformation non è valido.

-oppure- Le informazioni sul gestore delle transazioni presenti in recoveryInformation non corrispondono al gestore delle transazioni configurato.

-oppure- RecoveryInformation non è riconosciuto da System.Transactions.

RecoveryComplete(Guid) è gia stato chiamato per l'oggetto resourceManagerIdentifier specificato. L'operazione di reinserimento nell'elenco viene rifiutata.

resourceManagerIdentifier non corrisponde al contenuto delle informazioni per il recupero specificate in recoveryInformation.

Commenti

Importante

La chiamata a questo metodo con dati non attendibili costituisce un rischio per la sicurezza. Chiamare questo metodo solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.

In caso di errore delle risorse, la gestione risorse consente di ripristinare le integrazioni durevoli di una transazione mediante la reintegrazione dei partecipanti della transazione.

Il resourceManagerIdentifier parametro viene usato per etichettare in modo coerente il partecipante di una transazione in caso di errore della risorsa. Quando si chiama il Reenlist metodo, gestione risorse deve fornire lo stesso resourceManagerIdentifier utilizzato quando originariamente chiamato il metodo durante l'inserimento EnlistDurable o viene generato un TransactionException oggetto .

Dopo aver utilizzato questo metodo per reintegrare un partecipante, il sistema chiama il metodo della fase 2 dell'interfaccia IEnlistmentNotification corrispondente al risultato della transazione (ovvero Commit, Rollback o InDoubt).

Al termine dell'elenco dei partecipanti, è quindi necessario chiamare RecoveryComplete per completare il ripristino.

È consigliabile chiamare questo metodo solo quando un gestore risorse riavvia da un errore. Inoltre, la reintegrazione deve riguardare esclusivamente le transazioni non ripristinate registrate da un gestore di risorse durante la fase iniziale di preparazione di un commit a due fasi. Qualsiasi tentativo di chiamata a questo metodo in casi non validi può produrre risultati imprevisti.

Se gestione transazioni ha esito negativo e gestione risorse esegue il ripristino solo un breve periodo di tempo dopo aver chiamato il Prepared metodo in una fase 1 del protocollo Two-Phase Commit, il gestore risorse potrebbe ricevere o InDoubt Rollback callback.

Per altre informazioni sul ripristino, vedere Esecuzione del ripristino.

Nota Questo metodo usa LinkDemand per impedire che venga chiamato dal codice non attendibile. Tuttavia, è necessario che solo il chiamante immediato disponga del FullTrust set di autorizzazioni.

Si applica a

Vedi anche