System.Transactions Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Contiene clases que permiten escribir un administrador de recursos y una aplicación transaccional propios. Concretamente, se puede crear y participar en una transacción (local o distribuida) con uno o varios participantes.
Clases
CommittableTransaction |
Describe una transacción confirmable. |
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. Esta clase no puede heredarse. |
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). Esta clase no puede heredarse. |
DistributedTransactionPermissionAttribute |
Permite acciones de seguridad de DistributedTransactionPermission para que se apliquen al código mediante seguridad declarativa. Esta clase no puede heredarse. |
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. |
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. |
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). |
SubordinateTransaction |
Representa una transacción que no es raíz y que puede delegarse. Esta clase no puede heredarse. |
Transaction |
Representa una transacción. |
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. |
TransactionEventArgs |
Proporciona los datos para los eventos de transacción siguientes: DistributedTransactionStarted, TransactionCompleted. |
TransactionException |
La excepción que se produce cuando intenta trabajar en una transacción que no puede aceptar el nuevo trabajo. |
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. |
TransactionInformation |
Proporciona información adicional respecto a una transacción. |
TransactionInterop |
Facilita la interacción entre System.Transactions y componentes que se han escrito previamente para interactuar con MSDTC, COM+ o System.EnterpriseServices. Esta clase no puede heredarse. |
TransactionManager |
Contiene métodos utilizados para la administración de transacciones. Esta clase no puede heredarse. |
TransactionManagerCommunicationException |
La excepción que se produce cuando un administrador de recursos no puede comunicar con el administrador de transacciones. |
TransactionPromotionException |
La excepción que se produce cuando hay un error en una promoción. |
TransactionScope |
Crea un bloque de código transaccional. Esta clase no puede heredarse. |
Estructuras
TransactionOptions |
Contiene información adicional que especifica los comportamientos de la transacción. |
Interfaces
IDtcTransaction |
Describe una transacción DTC. |
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. |
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. |
ISimpleTransactionSuperior |
Representa una transacción que no es una transacción raíz, pero se puede escalar para que sea administrado por MSDTC. |
ISinglePhaseNotification |
Describe un objeto de recurso que admite la optimización de confirmación de fase única para participar en una transacción. |
ITransactionPromoter |
Describe una transacción delegada para una transacción existente que se puede elevar para ser administrada por MSDTC cuando se necesita. |
Enumeraciones
DependentCloneOption |
Controla qué tipo de transacción dependiente se va a crear. |
EnlistmentOptions |
Determina si el objeto se debería inscribir durante la fase de preparación. |
EnterpriseServicesInteropOption |
Especifica cómo interactúan las transacciones distribuidas con transacciones COM+. |
IsolationLevel |
Especifica el nivel de aislamiento de una transacción. |
TransactionScopeAsyncFlowOption |
Especifica si el flujo de la transacción a través de las continuaciones de subproceso está habilitado para TransactionScope. |
TransactionScopeOption |
Proporciona opciones adicionales para crear un ámbito de la transacción. |
TransactionStatus |
Describe el estado actual de una transacción distribuida. |
Delegados
HostCurrentTransactionCallback |
Proporciona un mecanismo para el entorno de host para proporcionar su propia noción predeterminada de Current. |
TransactionCompletedEventHandler |
Representa el método que controla el evento TransactionCompleted de Transaction. |
TransactionStartedEventHandler |
Representa el método que controlará el evento DistributedTransactionStarted de una clase TransactionManager. |
Comentarios
La System.Transactions
infraestructura simplifica y hace que la programación transaccional sea sencilla y eficaz en toda la plataforma al admitir transacciones iniciadas en SQL Server, ADO.NET, MSMQ y el Coordinador de transacciones distribuidas de Microsoft (MSDTC). Proporciona un modelo de programación explícito basado en la Transaction clase , así como un modelo de programación implícito mediante la clase , en la TransactionScope que la infraestructura administra automáticamente las transacciones. Se recomienda encarecidamente usar el modelo implícito más sencillo para el desarrollo. Para empezar, consulte el tema Implementación de una transacción implícita mediante ámbito de transacción . Para obtener más información sobre cómo escribir una aplicación transaccional, consulte Escritura de una aplicación transaccional.
System.Transactions
también proporciona tipos para implementar un administrador de recursos. El administrador de transacciones nativo de la System.Transactions
infraestructura permite que los recursos volátiles o una única inscripción de recursos duraderos se confirmen o revierten eficazmente. Para obtener más información sobre la implementación de un administrador de recursos, consulte Implementación de un Administrador de recursos.
El administrador de transacciones también escala de forma transparente las transacciones locales a transacciones distribuidas coordinando a través de un administrador de transacciones basado en disco, como DTC, cuando un administrador de recursos duradero adicional se inscribe con una transacción. La infraestructura System.Transactions
proporciona un rendimiento mejorado principalmente de dos formas:
Escalación dinámica, lo que significa que la
System.Transactions
infraestructura solo interactúa con el MSDTC cuando realmente es necesario para una transacción. Esta área se trata en profundidad en el tema Escalación de administración de transacciones .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. Más adelante, si es necesario, la
System.Transactions
infraestructura todavía puede escalar la administración de la transacción a MSDTC. Esto reduce aún más la oportunidad de utilizar MSDTC. Esta área se trata en profundidad en el tema Optimización mediante confirmación de fase única y notificación de fase única promocionable .
Para obtener más información sobre cómo usar el System.Transactions
espacio de nombres, vea Procesamiento de transacciones.