Opzioni di voto nelle transazioni automatiche

Le classi .NET Framework e le pagine ASP.NET possono votare se eseguire il commit della transazione corrente o interromperla. Per impostazione predefinita, l'assenza di un voto esplicito nel codice viene interpretata come un voto per il commit. Il commit predefinito, tuttavia, può influenzare negativamente le prestazioni dell'applicazione allungando il tempo necessario a ciascuna transazione per rilasciare risorse dispendiose.

Il voto esplicito consente inoltre alla classe o alla pagina di interrompere una transazione se si verifica un errore significativo. È inoltre possibile migliorare le prestazioni dell'applicazione rilevando un errore irreversibile all'inizio della transazione, terminando la transazione e rilasciando le risorse interessate.

Utilizzo di AutoComplete

L'attributo System.EnterpriseServices.AutoCompleteAttribute fa in modo che un oggetto che partecipa a una transazione voti per il completamento della transazione se il metodo restituisce risultati normali. Se la chiamata del metodo genera un'eccezione, la transazione verrà invece interrotta. È possibile applicare questo attributo solo a classi derivate dalla classe ServicedComponent.

Per utilizzare questa funzionalità, inserire l'attributo prima del metodo della classe. Se si aggiunge l'attributo a un metodo di interfaccia, Common Language Runtime lo ignorerà. Per un esempio dell'utilizzo dell'attributo AutoComplete, vedere Procedura: impostare l'attributo AutoComplete su una classe che supporta le transazioni.

Utilizzo di SetAbort e SetComplete

Per eseguire il commit e interrompere la transazione in modo esplicito è possibile utilizzare, rispettivamente, i metodi statici SetComplete e SetAbort della classe System.EnterpriseServices.ContextUtil. Il metodo SetComplete indica che l'oggetto vota per il commit, mentre SetAbort indica che l'oggetto ha rilevato un problema e vota per l'interruzione della transazione in corso. Finché non viene disattivato l'oggetto di primo livello della transazione, non viene eseguito il commit della transazione né la transazione viene interrotta. È inoltre sufficiente un unico voto di interruzione da parte di un qualsiasi oggetto partecipante alla transazione perché l'intera transazione abbia esito negativo. Per un esempio dell'utilizzo dei metodi SetAbort e SetComplete, vedere Procedura: utilizzare i metodi SetAbort e SetComplete.

Vedere anche

Attività

Procedura: impostare l'attributo AutoComplete su una classe che supporta le transazioni
Procedura: utilizzare i metodi SetAbort e SetComplete

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.