TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- 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 .