System.Transactions Namespace

El espacio de nombres System.Transactions contiene clases que permiten escribir aplicaciones transaccionales y administradores de recursos propios. The System.Transactions namespace contains classes that allow you to write your own transactional application and resource manager. Concretamente, se puede crear una transacción (local o distribuida) y participar en la misma con uno o varios participantes. Specifically, you can create and participate in a transaction (local or distributed) with one or multiple participants.

Clases

CommittableTransaction

Describe una transacción confirmable.Describes a committable transaction.

DependentTransaction

Describe un clon de una transacción y garantiza que no se puede confirmar la transacción hasta que la aplicación no deja de procesar la transacción.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. Esta clase no puede heredarse.This class cannot be inherited.

DistributedTransactionPermission

Permiso que System.Transactions solicita cuando la administración de una transacción se dirige al Coordinador de transacción distribuida de Microsoft (MS DTC).The permission that is demanded by System.Transactions when management of a transaction is escalated to MSDTC. Esta clase no puede heredarse.This class cannot be inherited.

DistributedTransactionPermissionAttribute

Permite acciones de seguridad de DistributedTransactionPermission para que se apliquen al código mediante seguridad declarativa.Allows security actions for DistributedTransactionPermission to be applied to code using declarative security. Esta clase no puede heredarse.This class cannot be inherited.

Enlistment

Facilita la comunicación entre un participante de la transacción inscrito y el administrador de transacciones durante la fase final de la transacción.Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.

PreparingEnlistment

Facilita la comunicación entre un participante de la transacción inscrito y el Administrador de transacciones durante la fase de preparación de la transacción.Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.

SinglePhaseEnlistment

Proporciona un conjunto de devoluciones de llamada que facilitan la comunicación entre un participante inscrito en la confirmación en una fase y el administrador de transacciones cuando se recibe la notificación SinglePhaseCommit(SinglePhaseEnlistment).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 una transacción no es raíz que se puedan delegar.Represents a non-rooted transaction that can be delegated. Esta clase no puede heredarse.This class cannot be inherited.

Transaction

Representa una transacción.Represents a transaction.

TransactionAbortedException

La excepción que se produce cuando se intenta una operación en una transacción que ya se ha deshecho o se intenta confirmar la transacción y se anula la transacción.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

Proporciona los datos para los eventos de transacción siguientes: DistributedTransactionStarted, TransactionCompleted.Provides data for the following transaction events: DistributedTransactionStarted, TransactionCompleted.

TransactionException

La excepción que se produce cuando intenta trabajar en una transacción que no puede aceptar el nuevo trabajo.The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.

TransactionInDoubtException

La excepción que se produce cuando se intenta una operación en una transacción que está en duda o se intenta confirmar la transacción y ésta pasa al estado de en duda.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

Proporciona información adicional respecto a una transacción.Provides additional information regarding a transaction.

TransactionInterop

Facilita la interacción entre System.Transactions y componentes que se han escrito previamente para interactuar con MSDTC, COM+ o System.EnterpriseServices.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Esta clase no puede heredarse.This class cannot be inherited.

TransactionManager

Contiene métodos utilizados para la administración de transacciones.Contains methods used for transaction management. Esta clase no puede heredarse.This class cannot be inherited.

TransactionManagerCommunicationException

La excepción que se produce cuando un administrador de recursos no puede comunicar con el administrador de transacciones.The exception that is thrown when a resource manager cannot communicate with the transaction manager.

TransactionPromotionException

La excepción que se produce cuando hay un error en una promoción.The exception that is thrown when a promotion fails.

TransactionScope

Crea un bloque de código transaccional.Makes a code block transactional. Esta clase no puede heredarse.This class cannot be inherited.

Estructuras

TransactionOptions

Contiene información adicional que especifica los comportamientos de la transacción.Contains additional information that specifies transaction behaviors.

Interfaces

IDtcTransaction

Describe una transacción DTC.Describes a DTC transaction.

IEnlistmentNotification

Describe una interfaz que un administrador de recursos debe implementar para proporcionar devoluciones de llamada de notificación de confirmación en dos fases para el administrador de transacciones al inscribirse para la participación.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

Describe un objeto que actúa como un delegado de confirmación para una transacción no distribuida interna a un administrador de recursos.Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.

ISimpleTransactionSuperior

Representa una transacción que no es una transacción raíz, pero se puede escalar para que sea administrado por MSDTC.Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.

ISinglePhaseNotification

Describe un objeto de recurso que admite la optimización de confirmación de fase única para participar en una transacción.Describes a resource object that supports single phase commit optimization to participate in a transaction.

ITransactionPromoter

Describe una transacción delegada para una transacción existente que se puede elevar para ser administrada por MSDTC cuando sea necesario.Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.

Enumeraciones

DependentCloneOption

Controla qué tipo de transacción dependiente se va a crear.Controls what kind of dependent transaction to create.

EnlistmentOptions

Determina si el objeto se debería inscribir durante la fase de preparación.Determines whether the object should be enlisted during the prepare phase.

EnterpriseServicesInteropOption

Especifica cómo interactúan las transacciones distribuidas con transacciones COM+.Specifies how distributed transactions interact with COM+ transactions.

IsolationLevel

Especifica el nivel de aislamiento de una transacción.Specifies the isolation level of a transaction.

TransactionScopeAsyncFlowOption

Especifica si el flujo de la transacción a través de las continuaciones de subproceso está habilitado para TransactionScope.Specifies whether transaction flow across thread continuations is enabled for TransactionScope.

TransactionScopeOption

Proporciona opciones adicionales para crear un ámbito de la transacción.Provides additional options for creating a transaction scope.

TransactionStatus

Describe el estado actual de una transacción distribuida.Describes the current status of a distributed transaction.

Delegados

HostCurrentTransactionCallback

Proporciona un mecanismo para el entorno de host para proporcionar su propia noción predeterminada de Current.Provides a mechanism for the hosting environment to supply its own default notion of Current.

TransactionCompletedEventHandler

Representa el método que controla el evento TransactionCompleted de Transaction.Represents the method that handles the TransactionCompleted event of a Transaction class.

TransactionStartedEventHandler

Representa el método que controlará el evento DistributedTransactionStarted de una clase TransactionManager.Represents the method that will handle the DistributedTransactionStarted event of a TransactionManager class.

Comentarios

El System.Transactions infraestructura hace que la programación transaccional sencilla y eficaz a lo largo de la plataforma al admitir las transacciones iniciadas en SQL Server, ADO.NET, MSMQ y el Coordinador de transacciones distribuidas de Microsoft (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). Proporciona tanto un modelo de programación explícito según la Transaction clase, así como un modelo de programación implícito que utilizando la TransactionScope (clase), donde la infraestructura administra automáticamente las transacciones.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. Se recomienda encarecidamente que utilice el modelo implícito más sencillo para el desarrollo.It is highly recommended that you use the easier implicit model for development. Para empezar, vea el Implementing An implícita transacción Using transacción Scope tema.To get started, see the Implementing An Implicit Transaction Using Transaction Scope topic. Para obtener más información sobre cómo escribir una aplicación transaccional, vea escribir una aplicación transaccional.For more information on writing a transactional application, see Writing A Transactional Application.

System.Transactions También proporciona tipos para implementar un administrador de recursos.System.Transactions also provides types for you to implement a resource manager. El Administrador de transacciones nativo para el System.Transactions infraestructura permite a los recursos volátiles o la inscripción de un recurso duradero único para confirmar o revertir eficazmente.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 obtener más información sobre la implementación de un administrador de recursos, consulte Implementing A Resource Manager.For more information on implementing a resource manager, see Implementing A Resource Manager.

El Administrador de transacciones escala también de forma transparente las transacciones locales a transacciones distribuidas mediante la coordinación a través de un administrador de transacciones basadas en disco como DTC, cuando un administrador de recursos duraderos adicional se inscribe con una transacción.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. La infraestructura System.Transactions proporciona un rendimiento mejorado principalmente de dos formas:There are two key ways that the System.Transactions infrastructure provides enhanced performance.

  • Subida dinámica, lo que significa que el System.Transactions infraestructura solo activa el MSDTC cuando sea realmente necesario para una transacción.Dynamic Escalation, which means that the System.Transactions infrastructure only engages the MSDTC when it is actually required for a transaction. Esta área se trata en profundidad en el subida de administración de la transacción tema.This area is covered in depth in the Transaction Management Escalation topic.

  • Inscripciones de ascenso, que permiten que un recurso, como una base de datos, asuma la propiedad de la transacción si es la única entidad que participa en la transacción.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. Más adelante, si es necesario, el System.Transactions infraestructura aún puede dirigir la administración de la transacción a MSDTC.Later, if needed, the System.Transactions infrastructure can still escalate the management of the transaction to MSDTC. Esto reduce aún más la oportunidad de utilizar MSDTC.This further reduces the chance of using the MSDTC. Esta área se trata en profundidad en el optimización del uso de confirmación de fase única y fase única Promovible tema.This area is covered in depth in the Optimization Using Single Phase Commit and Promotable Single Phase Notification topic.

System.Transactions define tres niveles de confianza que restringen el acceso a los tipos de recursos que expone.System.Transactions defines three levels of trust that restrict access on the types of resources it exposes. En concreto, el System.Transactions ensamblado puede ser llamado por código de confianza parcial, tal como se ha marcado con el 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). Este atributo básicamente quita el valor LinkDemand implícito para el permiso FullTrust establecido que, por otra parte, se coloca automáticamente en cada método público accesible de 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. Sin embargo, algunos tipos y miembros siguen necesitando permisos más firmes.However, some types and members still require stronger permissions.

La siguiente es una lista de tipos y miembros que no son invocables por parcialmente el código de confianza ya que se decoran con el atributo de seguridad declarativa siguiente: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 obtener más información acerca de los diversos niveles de confianza, vea niveles de confianza de seguridad de acceso a recursos.For more information on the various trust levels, see Security Trust Levels in Accessing Resources.

Desarrollo fundamental\Acceso datos\Procesamiento transacciones\Core Development Technologies\Data Access\Transaction Processing\

Para obtener más información sobre cómo usar el System.Transactions espacio de nombres, puede consultar la documentación conceptual Transaction Processing, que se encuentra en el "procesamiento básico de desarrollo fundamental\Acceso datos\Procesamiento\"sección en la documentación.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. En concreto, puede encontrar más información en los temas siguientes.Specifically, you can find more information in the following topics.

Características proporcionadas por System.TransactionsFeatures Provided By System.Transactions

Implementar un administrador de recursosImplementing A Resource Manager