IEnlistmentNotification.Prepare(PreparingEnlistment) Metodo

Definizione

Notifica a un oggetto inserito nell'elenco che è in corso la preparazione di una transazione per il commit.

public void Prepare (System.Transactions.PreparingEnlistment preparingEnlistment);

Parametri

preparingEnlistment
PreparingEnlistment

Oggetto PreparingEnlistment utilizzato per inviare una risposta al gestore delle transazioni.

Commenti

Il gestore delle transazioni chiama questo metodo di un gestore risorse incluso durante la fase 1 di un impegno, quando chiede ai partecipanti se è possibile eseguire il commit della transazione.

Quando si implementa un gestore di risorse durevoli, è necessario registrare il record di preparazione durante questa fase. Il record deve contenere tutte le informazioni necessarie per eseguire il ripristino. Ciò include la RecoveryInformation proprietà , che viene passata al gestore transazioni nel metodo durante il Reenlist ripristino. Per altre informazioni sul ripristino, vedere Esecuzione del ripristino.

Il gestore risorse deve completare tutte le operazioni che devono essere completate prima di chiamare il Prepared metodo del parametro per indicare il relativo voto per l'impegno preparingEnlistment . È necessario assicurarsi che venga eseguita prima di ricevere qualsiasi notifica della fase 2, ad esempio commit, rollback o dubbio. Ciò avviene perché le notifiche della fase 2 possono verificarsi inline nello stesso thread che ha chiamato il Prepared metodo nella fase 1. Ne consegue che, dopo la chiamata al metodo Prepared, non occorre eseguire alcuna operazione (ad esempio il rilascio dei blocchi) che si prevede sia stata completata prima di ricevere le notifiche della fase 2.

È anche possibile chiamare il metodo del preparingEnlistment parametro per indicare un voto per il rollback.

Se si desidera che l'oggetto osservi e reagisca semplicemente allo stato di avanzamento della transazione, senza parteciparvi, l'implementazione di questo metodo deve chiamare il Done metodo del preparingEnlistment parametro al termine del lavoro. In questo modo, resource manager non riceverà alcuna notifica della fase 2.

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1