CommittableTransaction Classe

Definição

Descreve uma transação pode ser confirmada.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
Herança
CommittableTransaction
Atributos
Implementações

Comentários

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 Transaction.Clone por meio do método não são confirmáveis.Therefore, copies of a committable transaction obtained through the Transaction.Clone method are not committable.

Observação

É recomendável que você crie transações implícitas TransactionScope usando a classe, 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 TransactionScope classes DependentTransaction e 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 CommittableTransaction de um 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 Transaction.Current estática 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 CommittableTransaction um 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.

Construtores

CommittableTransaction()

Inicializa 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.

Propriedades

IsolationLevel

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

(Herdado de 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.

(Herdado de Transaction)
TransactionInformation

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

(Herdado de Transaction)

Métodos

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) (Herdado de Transaction)
Clone()

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

(Herdado de 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.

(Herdado de Transaction)
Dispose()

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

(Herdado de 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) (Herdado de 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.

(Herdado de 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.

(Herdado de 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).

(Herdado de 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).

(Herdado de 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.

(Herdado de 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.

(Herdado de 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.

(Herdado de Transaction)
GetHashCode()

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

(Herdado de 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.

(Herdado de Transaction)
GetType()

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

(Herdado de Object)
MemberwiseClone()

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

(Herdado de 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.

(Herdado de Transaction)
Rollback()

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

(Herdado de Transaction)
Rollback(Exception)

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

(Herdado de 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.

(Herdado de Transaction)
ToString()

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

(Herdado de Object)

Eventos

TransactionCompleted

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

(Herdado de Transaction)

Implantações explícitas de interface

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)

Aplica-se a

Acesso thread-safe

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

Veja também