Condividi tramite


CommittableTransaction Classe

Definizione

Descrive una transazione di cui è possibile eseguire il commit.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
[<System.Serializable>]
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult
Ereditarietà
CommittableTransaction
Attributi
Implementazioni

Commenti

A differenza della classe CommittableTransaction, che consente di utilizzare le transazioni in modo implicito, la classe TransactionScope consente di utilizzare le transazioni in modo esplicito. A differenza della classe TransactionScope, il writer di applicazione deve chiamare in modo specifico i metodi Commit e Rollback, rispettivamente per interrompere la transazione o per eseguirne il commit. Tuttavia, solo l'autore di una transazione può eseguire il commit della transazione. Di conseguenza, le copie di una transazione commitable ottenuta tramite il Transaction.Clone metodo non sono commitabili.

Nota

È consigliabile creare transazioni implicite usando la TransactionScope classe , in modo che il contesto della transazione di ambiente venga gestito automaticamente. È anche consigliabile usare le TransactionScope classi e DependentTransaction per le applicazioni che richiedono l'uso della stessa transazione tra più chiamate di funzione o più chiamate di thread. Per altre informazioni su questo modello, vedere l'argomento Implementazione di una transazione implicita tramite ambito transazione .

La creazione di un CommittableTransaction oggetto non imposta automaticamente la transazione di ambiente, ovvero la transazione in cui viene eseguito il codice. È possibile ottenere o impostare la transazione di ambiente chiamando la proprietà statica Transaction.Current dell'oggetto globale Transaction . Per altre informazioni sulle transazioni di ambiente, vedere la sezione "Managing Transaction Flow using TransactionScopeOption" dell'argomento Implementing An Implicit Transaction Using Transaction Scope . Se la transazione di ambiente non è impostata, qualsiasi operazione su un gestore di risorse non fa parte di tale transazione. È necessario impostare e reimpostare in modo esplicito la transazione di ambiente per garantire che i gestori di risorse funzionino nel contesto di transazione corretto.

Finché non viene eseguito il commit di un oggetto CommittableTransaction , tutte le risorse coinvolte nella transazione sono ancora bloccate.

Gli oggetti CommittableTransaction non possono essere riutilizzati. Una volta eseguito il commit o il rollback, non può essere usato nuovamente in una transazione o impostato come contesto di transazione di ambiente corrente.

Costruttori

CommittableTransaction()

Inizializza una nuova istanza della classe CommittableTransaction.

CommittableTransaction(TimeSpan)

Inizializza una nuova istanza della classe CommittableTransaction con il valore timeout specificato.

CommittableTransaction(TransactionOptions)

Inizializza una nuova istanza della classe CommittableTransaction con le opzioni di transazione specificate.

Proprietà

IsolationLevel

Ottiene il livello di isolamento della transazione.

(Ereditato da Transaction)
PromoterType

Identifica in modo univoco il formato di byte[] restituito dal metodo Promote quando la transazione viene promossa.

(Ereditato da Transaction)
TransactionInformation

Recupera informazioni aggiuntive su una transazione.

(Ereditato da Transaction)

Metodi

BeginCommit(AsyncCallback, Object)

Avvia un tentativo di eseguire il commit della transazione in modo asincrono.

Clone()

Crea un duplicato della transazione.

(Ereditato da Transaction)
Commit()

Tenta di eseguire il commit della transazione.

DependentClone(DependentCloneOption)

Crea un duplicato dipendente della transazione.

(Ereditato da Transaction)
Dispose()

Rilascia le risorse contenute nell'oggetto.

(Ereditato da Transaction)
EndCommit(IAsyncResult)

Termina un tentativo di eseguire il commit della transazione in modo asincrono.

EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

Integra una gestione risorse durature che supporta il commit a due fasi per la partecipazione a una transazione.

(Ereditato da Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

Integra una gestione risorse durature che supporta l'ottimizzazione del commit a una fase per la partecipazione a una transazione.

(Ereditato da Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

Inserisce un gestore risorse con una transazione interna che usa un'integrazione PSPE (Promotable Single Phase Enlistment).

(Ereditato da Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

Inserisce un gestore risorse con una transazione interna che usa un'integrazione PSPE (Promotable Single Phase Enlistment).

(Ereditato da Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

Integra un gestore di risorse volatili che supporta il commit a due fasi per partecipare a una transazione.

(Ereditato da Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

Integra una gestione risorse volatili che supporta l'ottimizzazione del commit a una fase per la partecipazione a una transazione.

(Ereditato da Transaction)
Equals(Object)

Determina se questa transazione e l'oggetto specificato sono uguali.

(Ereditato da Transaction)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Transaction)
GetPromotedToken()

Ottiene l'oggetto byte[] restituito dal Promote metodo quando la transazione viene alzata di livello.

(Ereditato da Transaction)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

Promuove e inserisce una gestione risorse duratura che supporta il commit a due fasi per la partecipazione a una transazione.

(Ereditato da Transaction)
Rollback()

Esegue il rollback (interruzione) della transazione.

(Ereditato da Transaction)
Rollback(Exception)

Esegue il rollback (interruzione) della transazione.

(Ereditato da Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

Imposta l'identificatore di transazione distribuita generato dal promotore non MSDTC.

(Ereditato da Transaction)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

TransactionCompleted

Indica che la transazione è stata completata.

(Ereditato da Transaction)

Implementazioni dell'interfaccia esplicita

IAsyncResult.AsyncState

Ottiene l'oggetto fornito come ultimo parametro della chiamata del metodo BeginCommit(AsyncCallback, Object).

IAsyncResult.AsyncWaitHandle

Ottiene un oggetto WaitHandle che viene usato per attendere il completamento di un'operazione asincrona.

IAsyncResult.CompletedSynchronously

Ottiene un'indicazione sull'eventuale completamento in modo sincrono di un'operazione di commit asincrona.

IAsyncResult.IsCompleted

Ottiene un'indicazione del completamento dell'operazione di commit asincrono.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Ottiene un oggetto SerializationInfo con i dati richiesti per la serializzazione di questa transazione.

(Ereditato da Transaction)

Si applica a

Thread safety

Questo tipo è thread-safe.

Vedi anche