Funzionalità offerte da System.Transactions
Questa sezione descrive come utilizzare le funzionalità fornite dallo spazio dei nomi System.Transactions per scrivere applicazioni transazionali e gestori di risorse personalizzati. In particolare, questa sezione descrive come creare una transazione (locale o distribuita) e come integrarvi una o più risorse.
Panoramica su System.Transactions
Grazie al supporto delle transazioni create in SQL Server, ADO.NET, MSMQ e Microsoft Distributed Transaction Coordinator (MSDTC), l'infrastruttura fornita dalle classi dello spazio dei nomi System.Transactions rende la programmazione transazionale semplice ed efficiente. Lo spazio dei nomi System.Transactions fornisce sia un modello di programmazione esplicito basato sulla classe Transaction sia un modello di programmazione implicito che utilizza la classe TransactionScope, in cui le transazioni vengono gestite automaticamente dall'infrastruttura. Per ulteriori informazioni su come creare un'applicazione transazionale utilizzando questi due modelli, vedere Scrittura di un'applicazione transazionale.
Lo spazio dei nomi System.Transactions fornisce inoltre i tipi per implementare un gestore di risorse, ovvero un'applicazione che gestisce i dati permanenti o volatili utilizzati in una transazione e che collabora con il gestore transazioni per garantire atomicità e isolamento all'applicazione che utilizza tale transazione. Il gestore transazioni fornito dall'infrastruttura System.Transactions supporta le transazioni che coinvolgono più risorse volatili o una sola risorsa durevole. Per ulteriori informazioni sull'implementazione di un gestore di risorse, vedere Implementazione di un gestore di risorse.
Inoltre, quando un gestore di risorse durevole aggiuntivo si integra in una transazione, il gestore transazioni collabora con un gestore transazioni basato su disco quale DTC allo scopo di eseguire in modo trasparente l'escalation delle transazioni da locali a distribuite. Di base l'infrastruttura System.Transactions utilizza due meccanismi per ottimizzare le prestazioni:
Escalation dinamica, che garantisce che l'infrastruttura System.Transactions ricorra al gestore MSDTC solo quando una transazione coinvolge più risorse distribuite. Per ulteriori informazioni sull'escalation dinamica, vedere l'argomento Escalation della gestione delle transazioni.
PSPE, che consente a una risorsa, ad esempio un database, di assumere la proprietà della transazione se è l'unica entità a parteciparvi. In seguito, se necessario, l'infrastruttura System.Transactions può comunque eseguire l'escalation della gestione della transazione a MSDTC. Ciò consente di ridurre ulteriormente le probabilità di utilizzo del gestore MSDTC. Il meccanismo PSPE è descritto nell'argomento Ottimizzazione mediante commit monofase e notifica monofase promuovibile.
Lo spazio dei nomi System.Transactions definisce tre livelli di attendibilità per restringere l'accesso ai tipi di risorse che espone: AllowPartiallyTrustedCallers, DistributedTransactionPermission e FullTrust. Per ulteriori informazioni sui vari livelli di attendibilità, vedere Restrizioni di accesso alle risorse in base ai livelli di attendibilità di protezione.
Argomenti della sezione
Scrittura di un'applicazione transazionale
Lo spazio dei nomi System.Transactions offre due modelli per creare le applicazioni transazionali. L'argomento Implementazione di una transazione implicita utilizzando l'ambito di transazione descrive come utilizzare la classe TransactionScope dello spazio dei nomi System.Transactions per creare transazioni implicite.
L'argomento Implementazione di una transazione esplicita utilizzando CommittableTransaction descrive invece come utilizzare la classe CommittableTransaction dello spazio dei nomi System.Transactions per creare transazioni esplicite.
Per ulteriori informazioni sulla scrittura di un'applicazione transazionale, vedere Scrittura di un'applicazione transazionale.
Implementazione di un gestore di risorse
Per implementare un gestore di risorse in grado di partecipare a una transazione, vedere Implementazione di un gestore di risorse. Questa sezione descrive l'integrazione di una risorsa, il commit di una transazione, il ripristino in caso di errore e i metodi di ottimizzazione.
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.