CommittableTransaction Classe

Definizione

Descrive una transazione di cui è possibile eseguire il commit.Describes a committable transaction.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult, IDisposable, System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
type CommittableTransaction = class
    inherit Transaction
    interface ISerializable
    interface IDisposable
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult, IDisposable, ISerializable
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.The CommittableTransaction class provides an explicit way for applications to use a transaction, as opposed to using the TransactionScope class implicitly. 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.Unlike the TransactionScope class, the application writer needs to specifically call the Commit and Rollback methods in order to commit or abort the transaction. Tuttavia, solo l'autore di una transazione può eseguire il commit della transazione.However, only the creator of a transaction can commit the transaction. Pertanto, le copie di una transazione di cui è stato Transaction.Clone eseguito il commit ottenute tramite il metodo non sono vincolabili.Therefore, copies of a committable transaction obtained through the Transaction.Clone method are not committable.

Nota

Si consiglia di creare transazioni implicite usando la TransactionScope classe, in modo che il contesto della transazione di ambiente venga gestito automaticamente.We recommend that you create implicit transactions using the TransactionScope class, so that the ambient transaction context is automatically managed for you. È inoltre consigliabile utilizzare le TransactionScope classi DependentTransaction e per le applicazioni che richiedono l'utilizzo della stessa transazione tra più chiamate di funzione o più chiamate di thread.You should also use the TransactionScope and DependentTransaction classes for applications that require the use of the same transaction across multiple function calls or multiple thread calls. Per ulteriori informazioni su questo modello, vedere l'argomento implementazione di una transazione implicita mediante ambito di transazione .For more information on this model, see the Implementing An Implicit Transaction Using Transaction Scope topic.

La creazione CommittableTransaction di un oggetto non imposta automaticamente la transazione di ambiente, ovvero la transazione in cui viene eseguito il codice.Creating a CommittableTransaction does not automatically set the ambient transaction, which is the transaction your code executes in. È possibile ottenere o impostare la transazione di ambiente chiamando la proprietà Transaction.Current statica dell'oggetto globale Transaction .You can get or set the ambient transaction by calling the static Transaction.Current property of the global Transaction object. Per ulteriori informazioni sulle transazioni di ambiente, vedere la sezione relativa alla gestione del flusso delle transazioni con TransactionScopeOption dell'argomento implementazione di una transazione implicita mediante ambito di transazione .For more information on ambient transactions, see the " Managing Transaction Flow using TransactionScopeOption" section of the Implementing An Implicit Transaction Using Transaction Scope topic. Se la transazione di ambiente non è impostata, qualsiasi operazione in un gestore di risorse non fa parte della transazione.If the ambient transaction is not set, any operation on a resource manager is not part of that transaction. È necessario impostare e reimpostare in modo esplicito la transazione di ambiente per garantire che i gestori di risorse funzionino nel contesto di transazione appropriato.You need to explicitly set and reset the ambient transaction to ensure that resource managers operate under the right transaction context.

Fino a CommittableTransaction quando non è stato eseguito il commit di, tutte le risorse coinvolte nella transazione sono ancora bloccate.Until a CommittableTransaction has been committed, all the resources involved with the transaction are still locked.

Gli oggetti CommittableTransaction non possono essere riutilizzati.A CommittableTransaction object cannot be reused. Una volta eseguito il commit o il rollback, non è possibile riutilizzarlo in una transazione o impostarlo come contesto della transazione di ambiente corrente.Once it has been committed or rolled back, it cannot be used again in a transaction or set as the current ambient transaction context.

Costruttori

CommittableTransaction()

Inizializza una nuova istanza della classe CommittableTransaction.Initializes a new instance of the CommittableTransaction class.

CommittableTransaction(TimeSpan)

Inizializza una nuova istanza della classe CommittableTransaction con il valore timeout specificato.Initializes a new instance of the CommittableTransaction class with the specified timeout value.

CommittableTransaction(TransactionOptions)

Inizializza una nuova istanza della classe CommittableTransaction con le opzioni di transazione specificate.Initializes a new instance of the CommittableTransaction class with the specified transaction options.

Proprietà

IsolationLevel

Ottiene il livello di isolamento della transazione.Gets the isolation level of the transaction.

(Ereditato da Transaction)
PromoterType

Identifica in modo univoco il formato dell'oggetto byte[] restituito dal metodo Promote quando la transazione viene promossa.Uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.

(Ereditato da Transaction)
TransactionInformation

Recupera informazioni aggiuntive su una transazione.Retrieves additional information about a transaction.

(Ereditato da Transaction)

Metodi

BeginCommit(AsyncCallback, Object)

Avvia un tentativo di eseguire il commit della transazione in modo asincrono.Begins an attempt to commit the transaction asynchronously.

BeginCommitInternal(AsyncCallback) (Ereditato da Transaction)
Clone()

Crea un duplicato della transazione.Creates a clone of the transaction.

(Ereditato da Transaction)
Commit()

Tenta di eseguire il commit della transazione.Attempts to commit the transaction.

DependentClone(DependentCloneOption)

Crea un duplicato dipendente della transazione.Creates a dependent clone of the transaction.

(Ereditato da Transaction)
Dispose()

Rilascia le risorse contenute nell'oggetto.Releases the resources that are held by the object.

(Ereditato da Transaction)
EndCommit(IAsyncResult)

Termina un tentativo di eseguire il commit della transazione in modo asincrono.Ends an attempt to commit the transaction asynchronously.

EndCommitInternal(IAsyncResult) (Ereditato da Transaction)
EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

Integra una gestione risorse durature che supporta il commit a due fasi per la partecipazione a una transazione.Enlists a durable resource manager that supports two phase commit to participate in a transaction.

(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.Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.

(Ereditato da Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

Inserisce un gestore risorse con una transazione interna che usa un'integrazione PSPE (Promotable Single Phase Enlistment).Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(Ereditato da Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

Inserisce un gestore risorse con una transazione interna che usa un'integrazione PSPE (Promotable Single Phase Enlistment).Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(Ereditato da Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

Integra un gestore di risorse volatili che supporta il commit a due fasi per partecipare a una transazione.Enlists a volatile resource manager that supports two phase commit to participate in a transaction.

(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.Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.

(Ereditato da Transaction)
Equals(Object)

Determina se questa transazione e l'oggetto specificato sono uguali.Determines whether this transaction and the specified object are equal.

(Ereditato da Transaction)
GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Ereditato da Transaction)
GetPromotedToken()

Ottiene l'oggetto byte[] restituito dal metodo Promote quando la transazione viene promossa.Gets the byte[] returned by the Promote method when the transaction is promoted.

(Ereditato da Transaction)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(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.Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.

(Ereditato da Transaction)
Rollback()

Esegue il rollback (interruzione) della transazione.Rolls back (aborts) the transaction.

(Ereditato da Transaction)
Rollback(Exception)

Esegue il rollback (interruzione) della transazione.Rolls back (aborts) the transaction.

(Ereditato da Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

Imposta l'identificatore di transazione distribuita generato dal promotore non MSDTC.Sets the distributed transaction identifier generated by the non-MSDTC promoter.

(Ereditato da Transaction)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Eventi

TransactionCompleted

Indica che la transazione è stata completata.Indicates that the transaction is completed.

(Ereditato da Transaction)

Implementazioni dell'interfaccia esplicita

IAsyncResult.AsyncState

Ottiene l'oggetto fornito come ultimo parametro della chiamata del metodo BeginCommit(AsyncCallback, Object).Gets the object provided as the last parameter of the BeginCommit(AsyncCallback, Object) method call.

IAsyncResult.AsyncWaitHandle

Ottiene un WaitHandle, utilizzato per attendere il completamento di un'operazione asincrona.Gets a WaitHandle that is used to wait for an asynchronous operation to complete.

IAsyncResult.CompletedSynchronously

Ottiene un'indicazione sull'eventuale completamento in modo sincrono di un'operazione di commit asincrona.Gets an indication of whether the asynchronous commit operation completed synchronously.

IAsyncResult.IsCompleted

Ottiene un'indicazione del completamento dell'operazione di commit asincrono.Gets an indication whether the asynchronous commit operation has completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Si applica a

Thread safety

Questo tipo è thread-safe.This type is thread safe.

Vedi anche