Valuta il contenuto e lascia un commento

  Attiva vista per larghezza di banda ridotta
Questa pagina è specifica di
Microsoft Visual Studio 2005/.NET Framework 2.0

Sono disponibili anche altre versioni per quanto indicato di seguito:
Riferimento a .NET Framework
Spazio dei nomi System.Transactions

Nota: questo spazio dei nomi è stato introdotto con .NET Framework versione 2.0.

Lo spazio dei nomi System.Transactions contiene le classi che consentono di scrivere un gestore di risorse e applicazioni transazionali personalizzato. In particolare, è possibile creare e partecipare a una transazione locale o distribuita con uno o più partecipanti.

NotaImportante:

Utilizzando questo spazio dei nomi è possibile creare applicazioni soltanto sulle piattaforme Windows 2000, Windows XP e Windows 2003. Se viene creata una transazione sulle piattaforme Windows 98 e Windows ME viene generata l'eccezione PlatformNotSupportedException.

L'infrastruttura System.Transactions rende la programmazione transazionale semplice ed efficiente sull'intera piattaforma in quanto supporta transazioni iniziate in SQL Server, ADO.NET, MSMQ e Microsoft Distributed Transaction Coordinator (MSDTC). Oltre a un modello di programmazione esplicito basato sulla classe Transaction, essa fornisce anche un modello di programmazione implicito che utilizza la classe TransactionScope in cui le transazioni vengono gestite automaticamente dall'infrastruttura. Per l'attività di sviluppo è indubbiamente consigliabile utilizzare il modello implicito più semplice. Per informazioni introduttive, vedere l'argomento Implementazione di una transazione implicita mediante TransactionScope. Per ulteriori informazioni sulla scrittura di un'applicazione transazionale, vedere Writing a Transactional Application.

Lo spazio dei nomi System.Transactions fornisce inoltre i tipi per l'implementazione di un gestore di risorse. Il gestore delle transazioni nativo dell'infrastruttura System.Transactions consente di eseguire in modo efficiente il commit o il rollback di risorse volatili o di un singolo elenco di risorse durature. Per ulteriori informazioni sull'implementazione di un gestore di risorse, vedere Implementazione di un gestore di risorse.

Il gestore delle transazioni innalza inoltre in modo trasparente il livello delle transazioni locali rendendole transazioni distribuite mediante il coordinamento attraverso un gestore delle transazioni basato su disco come DTC quando un gestore di risorse durature aggiuntive si inserisce in una transazione. L'infrastruttura System.Transactions fornisce prestazioni ottimizzate principalmente in due modi:

  • mediante escalation dinamica; in questo caso l'infrastruttura System.Transactions impegna MSDTC soltanto quando è effettivamente richiesto per una transazione. Per informazioni dettagliate a questo proposito, vedere l'argomento Innalzamento di livello della gestione di una transazione.

  • mediante gli elenchi promuovibili; questo metodo prevede che una risorsa, ad esempio un database, assuma la proprietà della transazione se è la sola entità che partecipa alla transazione. In seguito, se necessario, l'infrastruttura System.Transactions può comunque innalzare il livello di gestione della transazione fino a MSDTC. Questo metodo riduce ulteriormente le occasioni di utilizzo di MSDTC. Per informazioni dettagliate a questo proposito, vedere l'argomento Ottimizzazione tramite commit a fase singola e notifica a fase singola promuovibile.

Lo spazio dei nomi System.Transactions definisce tre livelli di attendibilità che limitano l'accesso al tipo di risorse che espone. In particolare, l'assembly System.Transactions può essere chiamato da codice parzialmente attendibile in quanto è stato contrassegnato con l'attributo AllowPartiallyTrustedCallers (APTCA). Questo attributo sostanzialmente rimuove il flag LinkDemand implicito dal set di autorizzazioni FullTrust che viene altrimenti automaticamente assegnato a ogni metodo accessibile pubblicamente per ciascun tipo. Alcuni tipi e membri richiedono tuttavia autorizzazioni più sicure.

Di seguito viene fornito un elenco di tipi e membri che non possono essere chiamati da codice parzialmente attendibile in quanto sono contrassegnati con l'attributo di protezione dichiarativa seguente:

PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")

System.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryComplete

System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)

M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

Per ulteriori informazioni sui vari livelli di attendibilità, vedere Livelli di attendibilità della protezione per l'accesso alle risorse.

Tecnologie di sviluppo di base\Accesso ai dati\Elaborazione delle transazioni\

Per ulteriori informazioni sull'utilizzo dello spazio dei nomi System.Transactions, è possibile consultare la documentazione concettuale Elaborazione delle transazioni, reperibile nella sezione "Tecnologie di sviluppo di base\Accesso ai dati\Elaborazione delle transazioni\". Vedere in particolare gli argomenti seguenti.

Funzionalità fornite da System.Transactions

Writing a Transactional Application

Implementazione di un gestore di risorse

 ClasseDescrizione
classe pubblicaCommittableTransactionDescrive una transazione di cui è possibile eseguire il commit.
classe pubblicaDependentTransactionDescrive un duplicato di una transazione che garantisce che non può essere eseguito il commit della transazione fino a quando nell'applicazione non si completano le operazioni relative alla transazione. Questa classe non può essere ereditata.
classe pubblicaDistributedTransactionPermissionAutorizzazione richiesta da System.Transactions durante l'escalation del livello di gestione di una transazione a MSDTC. Questa classe non può essere ereditata.
classe pubblicaDistributedTransactionPermissionAttributeConsente di applicare al codice le azioni di protezione per la classe DistributedTransactionPermission utilizzando la protezione dichiarativa. Questa classe non può essere ereditata.
classe pubblicaEnlistmentFacilita la comunicazione tra un partecipante alla transazione inserito nell'elenco e il gestore delle transazioni durante la fase finale della transazione.
classe pubblicaPreparingEnlistmentFacilita la comunicazione tra un partecipante alla transazione inserito nell'elenco e il gestore delle transazioni durante la fase di preparazione della transazione.
classe pubblicaSinglePhaseEnlistmentFornisce un insieme di callback che facilitano la comunicazione tra un partecipante inserito nell'elenco per il commit a una fase e il gestore delle transazioni quando viene ricevuta la notifica di SinglePhaseCommit.
classe pubblicaSubordinateTransactionRappresenta una transazione che non contiene una radice che può essere delegata. Questa classe non può essere ereditata.
classe pubblicaTransactionRappresenta una transazione.
classe pubblicaTransactionAbortedExceptionEccezione generata quando si è tentato di eseguire un'operazione in una transazione in cui è già stato eseguito il rollback oppure si è tentato di eseguire il commit della transazione e la transazione si interrompe.
classe pubblicaTransactionEventArgsFornisce i dati per i seguenti eventi di transazione: DistributedTransactionStarted e TransactionCompleted.
classe pubblicaTransactionExceptionEccezione generata quando si tenta di operare in una transazione in cui non è possibile accettare nuove operazioni.
classe pubblicaTransactionInDoubtExceptionEccezione generata quando viene tentata un'operazione su una transazione in dubbio oppure quando si tenta di eseguire il commit della transazione e questa diventa InDoubt.
classe pubblicaTransactionInformationFornisce informazioni aggiuntive su una transazione.
classe pubblicaTransactionInteropFacilita l'interazione tra System.Transactions e i componenti che sono stati precedentemente scritti per interagire con MSDTC, COM+ o System.EnterpriseServices. Questa classe non può essere ereditata.
classe pubblicaTransactionManagerContiene i metodi utilizzati per la gestione delle transazioni. Questa classe non può essere ereditata.
classe pubblicaTransactionManagerCommunicationExceptionEccezione generata quando un gestore delle risorse non riesce a comunicare con il gestore delle transazioni.
classe pubblicaTransactionPromotionExceptionEccezione generata in caso di promozione non riuscita.
classe pubblicaTransactionScopeRende transazionale un blocco di codice. Questa classe non può essere ereditata.
 InterfacciaDescrizione
interfaccia pubblicaIDtcTransactionDescrive una transazione DTC.
interfaccia pubblicaIEnlistmentNotificationDescrive l'interfaccia che deve essere implementata da un gestore delle risorse per fornire callback di notifica del commit a due fasi per il gestore delle transazioni in seguito all'inserimento nell'elenco per la partecipazione.
interfaccia pubblicaIPromotableSinglePhaseNotificationDescrive un oggetto che svolge la funzione di delegato di commit per una transazione non distribuita interna a un gestore delle risorse.
interfaccia pubblicaISimpleTransactionSuperiorRappresenta una transazione non di primo livello, ma di cui è possibile eseguire l'escalation per consentirne la gestione mediante MSDTC.
interfaccia pubblicaISinglePhaseNotificationDescrive un oggetto risorsa che supporta l'ottimizzazione del commit a una fase per la partecipazione a una transazione.
interfaccia pubblicaITransactionPromoterDescrive una transazione delegata di una transazione esistente di cui è possibile eseguire l'escalation per consentirne la gestione mediante MSDTC, se necessario.
 StrutturaDescrizione
struttura pubblicaTransactionOptionsContiene informazioni aggiuntive che specificano i comportamenti di una transazione.
 DelegatoDescrizione
delegato pubblicoHostCurrentTransactionCallbackFornisce un meccanismo affinché l'ambiente di hosting specifichi una propria nozione predefinita di Current.
delegato pubblicoTransactionCompletedEventHandlerRappresenta il metodo che gestisce l'evento TransactionCompleted di una classe Transaction.
delegato pubblicoTransactionStartedEventHandlerRappresenta il metodo che gestirà l'evento DistributedTransactionStarted di una classe TransactionManager.
 EnumerazioneDescrizione
enumerazione pubblicaDependentCloneOptionDetermina il tipo di transazione dipendente da creare.
enumerazione pubblicaEnlistmentOptionsDetermina se l'oggetto deve essere inserito nell'elenco durante la fase di preparazione.
enumerazione pubblicaEnterpriseServicesInteropOptionSpecifica il modo in cui le transazioni distribuite interagiscono con le transazioni COM+.
enumerazione pubblicaIsolationLevelSpecifica il livello di isolamento di una transazione.
enumerazione pubblicaTransactionScopeOptionFornisce opzioni aggiuntive per la creazione dell'ambito di una transazione.
enumerazione pubblicaTransactionStatusDescrive lo stato corrente di una transazione distribuita.
Contenuti della community   Che cos'è Contenuti della community?
Aggiungi nuovo contenuto RSS  Annotazioni
Processing
© 2009 Microsoft Corporation. Tutti i diritti riservati. Condizioni per l'utilizzo  |  Marchi  |  Informativa sulla privacy
Page view tracker