System.Transactions Namespace

O namespace System.Transactions contém classes que permitem que você grave seu próprio gerenciador de recursos e aplicativos transacionais. The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. Especificamente, você pode criar e participar de uma transação (local ou distribuída) com um ou vários participantes. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Classes

CommittableTransaction

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

DependentTransaction

Descreve um clone de uma transação que assegura que a transação não pode ser confirmada até o aplicativo atingir o estado de repouso com relação ao trabalho na transação.Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. Essa classe não pode ser herdada.This class cannot be inherited.

DistributedTransactionPermission

A permissão que é exigida pelo System.Transactions quando o gerenciamento de uma transação é escalonado para o MSDTC.The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Essa classe não pode ser herdada.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Permite que as ações de segurança para DistributedTransactionPermission sejam aplicadas ao código usando a segurança declarativa.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Essa classe não pode ser herdada.This class cannot be inherited.

Enlistment

Facilita a comunicação entre um participante de transação inscrito e o gerenciador de transação durante a fase final da transação.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Facilita a comunicação entre um participante da transação inscrita e o gerenciador de transação durante a fase de Preparação da transação.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Fornece um conjunto de retornos de chamada que facilitam a comunicação entre um participante inscrito na Única confirmação de fase e o gerenciador de transação quando a notificação SinglePhaseCommit(SinglePhaseEnlistment) é recebida.Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the SinglePhaseCommit(SinglePhaseEnlistment) notification is received.

SubordinateTransaction

Representa uma transação sem raiz que pode ser delegada.Represents a non-rooted transaction that can be delegated. Essa classe não pode ser herdada.This class cannot be inherited.

Transaction

Representa uma transação.Represents a transaction.

TransactionAbortedException

A exceção que é lançada quando há a tentativa de uma operação em uma transação que já foi revertida ou quando é feita uma tentativa de confirmar a transação e a transação foi anulada.The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.

TransactionEventArgs

Fornece dados para os seguintes eventos de transação: DistributedTransactionStarted, TransactionCompleted.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

A exceção que é lançada durante a tentativa de trabalhar em uma transação que não pode aceitar o novo trabalho.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

A exceção que é lançada quando é feita uma tentativa de uma operação em uma transação que está em dúvida ou é feita uma tentativa de confirmar a transação e a transação retorna InDoubt.The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.

TransactionInformation

Fornece informações adicionais sobre uma transação.Provides additional information regarding a transaction.

TransactionInterop

Facilita a interação entre System.Transactions e componentes anteriormente escritos para interagir com o MSDTC, COM+ ou System.EnterpriseServices.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Essa classe não pode ser herdada.This class cannot be inherited.

TransactionManager

Contém métodos usados para gerenciamento de transações.Contains methods used for transaction management. Essa classe não pode ser herdada.This class cannot be inherited.

TransactionManagerCommunicationException

A exceção lançada quando um gerenciador de recursos não pode se comunicar com o gerenciador de transações.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

A exceção lançada quando uma promoção falha.The exception that is thrown when a promotion fails.

TransactionScope

Torna um bloco de códigos transacional.Makes a code block transactional. Essa classe não pode ser herdada.This class cannot be inherited.

Estruturas

TransactionOptions

Contém informações adicionais que especificam comportamentos de transação.Contains additional information that specifies transaction behaviors.

Interfaces

IDtcTransaction

Descreve uma transação de DTC.Describes a DTC transaction.

IEnlistmentNotification

Descreve uma interface que um gerenciador de recursos deve implementar para fornecer dois retornos de chamada de notificação de confirmação de fase para o gerenciador de transação após a inscrição para a participação.Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.

IPromotableSinglePhaseNotification

Descreve um objeto que atua como um delegado de confirmação de uma transação não distribuída interna de um Resource Manager.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Representa uma transação que não é uma transação raiz, mas pode ser escalonada para ser gerenciada pelo MSDTC.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Descreve um objeto de recurso que dá suporte à otimização de confirmação de fase única para participar de uma transação.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Descreva uma transação delegada para uma transação existente que possa ser escalonada para ser gerenciada pelo MSDTC, quando necessário.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Enumerações

DependentCloneOption

Controla qual tipo de transação dependente criar.Controls what kind of dependent transaction to create.

EnlistmentOptions

Determina se o objeto deve ser inscrito durante a fase de preparação.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Especifica como as transações distribuídas interagem com transações COM+.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Especifica o nível de isolamento de uma transação.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Especifica se o fluxo de transações em continuações de thread está habilitado para TransactionScope.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Fornece opções adicionais para criar um escopo de transação.Provides additional options for creating a transaction scope.

TransactionStatus

Descreve o status atual de uma transação distribuída.Describes the current status of a distributed transaction.

Delegados

HostCurrentTransactionCallback

Fornece um mecanismo para o ambiente de hospedagem fornecer sua própria noção de padrão de Current.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Representa o método que manipula o evento TransactionCompleted de uma classe Transaction.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Representa o método que manipulará o evento de DistributedTransactionStarted de uma classe TransactionManager.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Comentários

O System.Transactions infraestrutura torna transacional de programação simples e eficiente em toda a plataforma, oferecendo suporte a transações iniciadas no SQL Server, ADO.NET, MSMQ e Microsoft Distributed Transaction coordenador (MSDTC).The System.Transactions infrastructure makes transactional programming simple and efficient throughout the platform by supporting transactions initiated in SQL Server, ADO.NET, MSMQ, and the Microsoft Distributed Transaction Coordinator (MSDTC). Ele fornece dois um modelo de programação explícito com base nas Transaction classe, bem como um modelo de programação implícito usando a TransactionScope classe, em que as transações são automaticamente gerenciadas pela infra-estrutura.It provides both an explicit programming model based on the Transaction class, as well as an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. É altamente recomendável que você use o modelo implícito mais fácil para o desenvolvimento.It is highly recommended that you use the easier implicit model for development. Para começar, consulte a implementando um implícita transação usando o escopo da transação tópico.To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Para obter mais informações sobre como escrever um aplicativo transacional, consulte escrevendo um aplicativo transacional.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions também fornece tipos implementar um Gerenciador de recursos.System.Transactions also provides types for you to implement a resource manager. O Gerenciador de transações nativo para o System.Transactions infraestrutura permite que recursos voláteis ou a inscrição de um único recurso durável para confirmar ou reverter com eficiência.The transaction manager native to the System.Transactions infrastructure allows volatile resources or a single durable resource enlistment to commit or roll back efficiently. Para obter mais informações sobre como implementar um Gerenciador de recursos, consulte implementando um Resource Manager.For more information on implementing a resource manager, see Implementing A Resource Manager.

O Gerenciador de transações também transparentemente escala transações locais a transações distribuídas por meio da coordenação por meio de um Gerenciador de transações baseadas em disco como o DTC, quando um Gerenciador de recursos adicionais de durável inscreve-se com uma transação.The transaction manager also transparently escalates local transactions to distributed transactions by coordinating through a disk-based transaction manager like the DTC, when an additional durable resource manager enlists itself with a transaction. Há duas maneiras principais que o System.Transactions infra-estrutura proporciona um desempenho aprimorado.There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • Escalonamento dinâmico, o que significa que o System.Transactions infra-estrutura apenas emprega o MSDTC quando ele é realmente necessário para uma transação.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Essa área é abordada em detalhes na escalonamento de gerenciamento de transações tópico.This area is covered in depth in the Transaction Management Escalation topic.

  • Podem ser promovidas inscrições, que permite que um recurso, como um banco de dados, apropriar-se da transação se for a única entidade participa da transação.Promotable Enlistments, which allows a resource, such as a database, to take ownership of the transaction if it is the only entity participating in the transaction. Posteriormente, se necessário, o System.Transactions infra-estrutura ainda pode escalonar o gerenciamento da transação MSDTC.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Isso reduz ainda mais a possibilidade de usar o MSDTC.This further reduces the chance of using the MSDTC. Essa área é abordada em detalhes na otimização usando confirmação de fase única e notificação de fase única passível de promoção tópico.This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions define três níveis de confiança que restringem o acesso a tipos de recursos que ele expõe.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. Especificamente, o System. Transactions assembly pode ser chamado pelo código parcialmente confiável, pois ele foi marcado com o AllowPartiallyTrustedCallers atributo (APTCA).Specifically, the System.Transactions assembly can be called by partially trusted code as it has been marked with the AllowPartiallyTrustedCallers attribute (APTCA). Basicamente, esse atributo remove implícito LinkDemand para o FullTrust permissão conjunto contrário colocado automaticamente em cada método publicamente acessível em cada tipo.This attribute essentially removes the implicit LinkDemand for the FullTrust permission set that is otherwise automatically placed on each publicly accessible method in each type. No entanto, alguns tipos e membros ainda requerem permissões mais fortes.However, some types and members still require stronger permissions.

A seguir está uma lista de tipos e membros que não podem ser chamados por parcialmente confiável código porque eles são decorados com o atributo de segurança declarativa a seguir:The following is a list of types and members that are not callable by partially trusted code because they are decorated with the following declarative security attribute:

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

System.Transactions.Transaction.EnlistDurableSystem.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhaseSystem.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInteropSystem.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStartedSystem.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallbackSystem.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.ReenlistSystem.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryCompleteSystem.Transactions.TransactionManager.RecoveryComplete

System.Transactions.TransactionScope.TransactionScope (System.Transactions.Transaction,System.TimeSpan,System.Transactions.EnterpriseServicesInteropOption)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)M:System.Transactions.TransactionScope.TransactionScope(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions,System.Transactions.EnterpriseServicesInteropOption)

Para obter mais informações sobre os vários níveis de confiança, consulte níveis de confiança de segurança no acessando recursos.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Core desenvolvimento Technologies\Data Access\Transaction Processing\Core Development Technologies\Data Access\Transaction Processing\

Para obter mais informações sobre como usar o System.Transactions namespace, você pode consultar a documentação conceitual processamento de transações, localizado em "Core desenvolvimento Technologies\Data Access\Transaction processamento\"na documentação de seção.For more information on how to use the System.Transactions namespace, you can consult the conceptual documentation Transaction Processing, located under the "Core Development Technologies\Data Access\Transaction Processing\" section in the documentation. Especificamente, você pode encontrar mais informações nos tópicos a seguir.Specifically, you can find more information in the following topics.

Recursos fornecidos pelo System. TransactionsFeatures Provided By System.Transactions

Implementar um Gerenciador de recursosImplementing A Resource Manager