CommittableTransaction Class

Definition

Descreve uma transação pode ser confirmada.Describes a committable transaction.

public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult
public ref class CommittableTransaction sealed : System::Transactions::Transaction, IAsyncResult, IDisposable, System::Runtime::Serialization::ISerializable
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult
[System.Serializable]
public sealed class CommittableTransaction : System.Transactions.Transaction, IAsyncResult, IDisposable, System.Runtime.Serialization.ISerializable
type CommittableTransaction = class
    inherit Transaction
    interface IAsyncResult
type CommittableTransaction = class
    inherit Transaction
    interface ISerializable
    interface IDisposable
    interface IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult
Public NotInheritable Class CommittableTransaction
Inherits Transaction
Implements IAsyncResult, IDisposable, ISerializable
Inheritance
CommittableTransaction
Attributes
Implements

Remarks

O CommittableTransaction classe fornece um modo explícito para os aplicativos que usam uma transação, em vez de usar o TransactionScope classe implicitamente.The CommittableTransaction class provides an explicit way for applications to use a transaction, as opposed to using the TransactionScope class implicitly. Ao contrário do TransactionScope classe, o criador do aplicativo precisa chamar especificamente o Commit e Rollback métodos para confirmar ou anular a transação.Unlike the TransactionScope class, the application writer needs to specifically call the Commit and Rollback methods in order to commit or abort the transaction. No entanto, somente o criador de uma transação pode confirmar a transação.However, only the creator of a transaction can commit the transaction. Portanto, as cópias de uma transação confirmável obtida por meio do método Transaction.Clone não são confirmadas.Therefore, copies of a committable transaction obtained through the Transaction.Clone method are not committable.

Note

Recomendamos que você crie transações implícitas usando a classe TransactionScope, para que o contexto de transação de ambiente seja automaticamente gerenciado para você.We recommend that you create implicit transactions using the TransactionScope class, so that the ambient transaction context is automatically managed for you. Você também deve usar as classes TransactionScope e DependentTransaction para aplicativos que exigem o uso da mesma transação em várias chamadas de função ou em várias chamadas de 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. Para obter mais informações sobre esse modelo, consulte o tópico implementando uma transação implícita usando escopo de transação .For more information on this model, see the Implementing An Implicit Transaction Using Transaction Scope topic.

A criação de uma CommittableTransaction não define automaticamente a transação de ambiente, que é a transação em que seu código é executado.Creating a CommittableTransaction does not automatically set the ambient transaction, which is the transaction your code executes in. Você pode obter ou definir a transação de ambiente chamando a propriedade estática Transaction.Current do objeto global Transaction.You can get or set the ambient transaction by calling the static Transaction.Current property of the global Transaction object. Para obter mais informações sobre transações de ambiente, consulte a seção "Gerenciando o fluxo de transações usando TransactionScopeOption" do tópico implementando uma transação implícita usando escopo de transação .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 a transação de ambiente não estiver definida, qualquer operação em um Gerenciador de recursos não será parte dessa transação.If the ambient transaction is not set, any operation on a resource manager is not part of that transaction. Você precisa definir e redefinir explicitamente a transação de ambiente para garantir que os gerenciadores de recursos operem sob o contexto de transação correto.You need to explicitly set and reset the ambient transaction to ensure that resource managers operate under the right transaction context.

Até que um CommittableTransaction tenha sido confirmado, todos os recursos envolvidos na transação ainda estarão bloqueados.Until a CommittableTransaction has been committed, all the resources involved with the transaction are still locked.

Um CommittableTransaction objeto não pode ser reutilizado.A CommittableTransaction object cannot be reused. Depois que ele tiver sido confirmado ou revertido, ele não poderá ser usado novamente em uma transação ou definido como o contexto de transação de ambiente atual.Once it has been committed or rolled back, it cannot be used again in a transaction or set as the current ambient transaction context.

Constructors

CommittableTransaction()

Inicia uma nova instância da classe CommittableTransaction.Initializes a new instance of the CommittableTransaction class.

CommittableTransaction(TimeSpan)

Inicializa uma nova instância da classe CommittableTransaction com o valor timeout especificado.Initializes a new instance of the CommittableTransaction class with the specified timeout value.

CommittableTransaction(TransactionOptions)

Inicializa uma nova instância da classe CommittableTransaction com as opções de transação especificadas.Initializes a new instance of the CommittableTransaction class with the specified transaction options.

Properties

IsolationLevel

Obtém o nível de isolamento de uma transação.Gets the isolation level of the transaction.

(Inherited from Transaction)
PromoterType

Identifica exclusivamente o formato do byte [] retornado pelo método Promote quando a transação é promovida.Uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.

(Inherited from Transaction)
TransactionInformation

Recupera informações adicionais sobre uma transação.Retrieves additional information about a transaction.

(Inherited from Transaction)

Methods

BeginCommit(AsyncCallback, Object)

Inicia uma tentativa de confirmar a transação de forma assíncrona.Begins an attempt to commit the transaction asynchronously.

BeginCommitInternal(AsyncCallback) (Inherited from Transaction)
Clone()

Cria um clone da transação.Creates a clone of the transaction.

(Inherited from Transaction)
Commit()

Tenta confirmar a transação.Attempts to commit the transaction.

DependentClone(DependentCloneOption)

Cria um clone dependente da transação.Creates a dependent clone of the transaction.

(Inherited from Transaction)
Dispose()

Libera os recursos que são mantidos pelo objeto.Releases the resources that are held by the object.

(Inherited from Transaction)
EndCommit(IAsyncResult)

Encerra uma tentativa de confirmar a transação de forma assíncrona.Ends an attempt to commit the transaction asynchronously.

EndCommitInternal(IAsyncResult) (Inherited from Transaction)
EnlistDurable(Guid, IEnlistmentNotification, EnlistmentOptions)

Inscreve um gerenciador de recursos durável que dá suporte à confirmação em duas fases para participar de uma transação.Enlists a durable resource manager that supports two phase commit to participate in a transaction.

(Inherited from Transaction)
EnlistDurable(Guid, ISinglePhaseNotification, EnlistmentOptions)

Inscreve um Resource Manager durável que dá suporte à otimização em fase única para participar de uma transação.Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.

(Inherited from Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification)

Inscreve um Resource Manager que tem uma transação interna usando uma PSPE (inscrição de fase única passível de promoção).Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(Inherited from Transaction)
EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)

Inscreve um Resource Manager que tem uma transação interna usando uma PSPE (inscrição de fase única passível de promoção).Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).

(Inherited from Transaction)
EnlistVolatile(IEnlistmentNotification, EnlistmentOptions)

Inscreve um Resource Manager volátil que dá suporte à confirmação em duas fases para participar de uma transação.Enlists a volatile resource manager that supports two phase commit to participate in a transaction.

(Inherited from Transaction)
EnlistVolatile(ISinglePhaseNotification, EnlistmentOptions)

Inscreve um Resource Manager volátil que dá suporte à otimização em fase única para participar de uma transação.Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.

(Inherited from Transaction)
Equals(Object)

Determina se a transação e o objeto especificado são iguais.Determines whether this transaction and the specified object are equal.

(Inherited from Transaction)
GetHashCode()

Retorna o código hash para a instância.Returns the hash code for this instance.

(Inherited from Transaction)
GetPromotedToken()

Obtém o byte [] retornado pelo método Promote quando a transação é promovida.Gets the byte[] returned by the Promote method when the transaction is promoted.

(Inherited from Transaction)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
PromoteAndEnlistDurable(Guid, IPromotableSinglePhaseNotification, ISinglePhaseNotification, EnlistmentOptions)

Promove e inscreve um gerenciador de recursos durável que dá suporte à confirmação de duas fases para participar de uma transação.Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.

(Inherited from Transaction)
Rollback()

Reverte (anula) a transação.Rolls back (aborts) the transaction.

(Inherited from Transaction)
Rollback(Exception)

Reverte (anula) a transação.Rolls back (aborts) the transaction.

(Inherited from Transaction)
SetDistributedTransactionIdentifier(IPromotableSinglePhaseNotification, Guid)

Define o identificador da transação distribuída gerado pelo promotor não MSDTC.Sets the distributed transaction identifier generated by the non-MSDTC promoter.

(Inherited from Transaction)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Events

TransactionCompleted

Indica que a transação está concluída.Indicates that the transaction is completed.

(Inherited from Transaction)

Explicit Interface Implementations

IAsyncResult.AsyncState

Obtém o objeto fornecido como o último parâmetro da chamada de método BeginCommit(AsyncCallback, Object).Gets the object provided as the last parameter of the BeginCommit(AsyncCallback, Object) method call.

IAsyncResult.AsyncWaitHandle

Obtém um WaitHandle que é usado para aguardar a conclusão de uma operação assíncrona.Gets a WaitHandle that is used to wait for an asynchronous operation to complete.

IAsyncResult.CompletedSynchronously

Obtém um valor que indica se a operação de confirmação assíncrona foi concluída de forma síncrona.Gets an indication of whether the asynchronous commit operation completed synchronously.

IAsyncResult.IsCompleted

Obtém um valor que indica se a operação de confirmação assíncrona foi concluída.Gets an indication whether the asynchronous commit operation has completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Obtém um SerializationInfo com os dados necessários para serializar essa transação.Gets a SerializationInfo with the data required to serialize this transaction.

(Inherited from Transaction)

Applies to

Thread Safety

Este tipo é thread-safe.This type is thread safe.

See also