Condividi tramite


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

Definizione

Riabilita un partecipante durevole in una transazione.

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

Parametri

resourceManagerIdentifier
Guid

Oggetto Guid che identifica in modo univoco il gestore risorse.

recoveryInformation
Byte[]

Contiene informazioni aggiuntive sulle informazioni di ripristino.

enlistmentNotification
IEnlistmentNotification

Oggetto risorsa che implementa IEnlistmentNotification per ricevere notifiche.

Valori restituiti

Oggetto Enlistment che descrive l'integrazione.

Eccezioni

recoveryInformation non è valido.

oppure

Le informazioni di Gestione transazioni in recoveryInformation non corrispondono al gestore transazioni configurato.

oppure

recoveryInformation non è riconosciuto da System.Transactions.

RecoveryComplete(Guid) è già stato chiamato per l'oggetto specificato resourceManagerIdentifier. Il reenlistment viene rifiutato.

non resourceManagerIdentifier corrisponde al contenuto delle informazioni di ripristino specificate in recoveryInformation.

Commenti

Importante

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

Un gestore risorse facilita la risoluzione delle inserzioni durevoli in una transazione reimpegnando il partecipante della transazione dopo il guasto della risorsa.

Il resourceManagerIdentifier parametro viene usato per etichettare in modo coerente il partecipante di una transazione in caso di errore di risorsa. Quando si chiama il Reenlist metodo , resource manager deve fornire lo stesso resourceManagerIdentifier valore usato quando originariamente ha chiamato il metodo durante l'integrazione EnlistDurable o viene generata un'eccezione TransactionException .

Quando un partecipante viene nuovamente elencato usando questo metodo, i metodi della fase 2 di IEnlistmentNotification che corrispondono al risultato della transazione ( ovvero , CommitRollback, o InDoubt ) vengono chiamati in base alle esigenze.

Dopo che i partecipanti sono stati nuovamente elencati, è necessario chiamare RecoveryComplete per completare il ripristino.

È consigliabile chiamare questo metodo solo quando un gestore di risorse viene riavviato da un errore. Inoltre, è consigliabile riabilitare solo le transazioni non risolte registrate da un gestore risorse durante la fase di preparazione iniziale di un commit in due fasi. Qualsiasi tentativo di chiamare questo metodo in momenti non validi può produrre risultati errati.

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

Si applica a