IEnlistmentNotification.InDoubt(Enlistment) 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.
Notifica a un oggetto elencato che lo stato di una transazione è in dubbio.
public:
void InDoubt(System::Transactions::Enlistment ^ enlistment);
public void InDoubt(System.Transactions.Enlistment enlistment);
abstract member InDoubt : System.Transactions.Enlistment -> unit
Public Sub InDoubt (enlistment As Enlistment)
Parametri
- enlistment
- Enlistment
Oggetto Enlistment utilizzato per inviare una risposta al gestore transazioni.
Commenti
Questo metodo viene chiamato per le risorse volatili quando gestione transazioni ha richiamato un'operazione di commit a una singola fase in una singola risorsa durevole e quindi la connessione alla risorsa durevole è stata persa prima di ottenere il risultato della transazione. A questo punto, il risultato della transazione non può essere determinato in modo sicuro.
Poiché InDoubt è considerato uno stato finale per una transazione, non è consigliabile chiamare o Commit dopo aver chiamato RollbackInDoubt .
Note
L'implementazione di questo metodo per la risorsa volatile deve eseguire qualsiasi operazione di recupero o contenimento che riconosce sui dati interessati. Deve anche chiamare il Done metodo sul sul parametro al termine del enlistment lavoro.
Se il gestore risorse è stato inserito in modo permanente, ma non risponde chiamando Done il metodo, il gestore transazioni non è sicuro che gestione risorse abbia ricevuto la InDoubt chiamata. Di conseguenza, gestione transazioni continua ad attendere una risposta e mantiene le informazioni rilevanti per questa transazione. Se Done non viene mai chiamato, queste informazioni vengono mantenute per un tempo indefinito in memoria o in una risorsa a livello di sistema. Ciò comporta la mancata recupero delle risorse. Nel caso di una transazione distribuita, questo potrebbe eventualmente riempire il log MSDTC, che interrompe il processo MSDTC. Nel caso di una transazione gestita da System.Transactions, questo comporta un aumento graduale e continuo del consumo di memoria del processo del gestore risorse. Pertanto, è fondamentale chiamare il Done metodo dopo che il gestore risorse è stato completato con il lavoro di preparazione.