¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

System.Transactions (Espacio de nombres)

El espacio de nombres System.Transactions contiene clases que permiten escribir aplicaciones transaccionales y administradores de recursos propios. Concretamente, se puede crear una transacción (local o distribuida) y participar en la misma con uno o varios participantes.

Nota importante Importante

Solo se pueden crear aplicaciones utilizando este espacio de nombres en las plataformas Windows 2000, Windows XP y Windows 2003. Si se crea una transacción en las plataformas Windows 98 y Windows ME, se inicia una excepción PlatformNotSupportedException.

La infraestructura System.Transactions hace que la programación transaccional sea sencilla y eficaz en toda la plataforma al admitir las transacciones iniciadas en SQL Server, ADO.NET, MSMQ y MSDTC (Coordinador de transacciones distribuidas de Microsoft). Proporciona tanto un modelo de programación explícito basado en la clase Transaction, como un modelo de programación implícito utilizando la clase TransactionScope, donde la infraestructura administra automáticamente las transacciones. Es muy recomendable utilizar el modelo implícito más sencillo para el desarrollo. Como introducción, vea el tema Implementing An Implicit Transaction Using Transaction Scope. Para obtener más información sobre cómo escribir una aplicación transaccional, vea Writing A Transactional Application.

System.Transactions también proporciona tipos para implementar un administrador de recursos. El administrador de transacciones nativo para la infraestructura System.Transactions permite que tanto los recursos volátiles como el alta de un único recurso duradero puedan confirmar o deshacer eficazmente. Para obtener más información sobre la implementación de un administrador de recursos, vea Implementing A Resource Manager.

Cuando un administrador de recursos duraderos adicional se da de alta a sí mismo en una transacción, el administrador de transacciones también dirige de forma transparente las transacciones locales a transacciones distribuidas, coordinando a través de un administrador de transacciones basado en disco como DTC. La infraestructura System.Transactions proporciona un rendimiento mejorado principalmente de dos formas:

  • Jerarquía dinámica, que significa que la infraestructura System.Transactions solo activa MSDTC cuando realmente es necesario para una transacción. Esta área se trata detalladamente en el tema Transaction Management Escalation.

  • 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. Posteriormente, si resulta necesario, la infraestructura System.Transactions aún puede dirigir la administración de la transacción a MSDTC. Esto reduce aún más la oportunidad de utilizar MSDTC. Esta área se trata detalladamente en el tema Optimization Using Single Phase Commit and Promotable Single Phase Notification.

System.Transactions define tres niveles de confianza que restringen el acceso a los tipos de recursos que expone. Concretamente, un código de confianza parcial puede llamar al ensamblado System.Transactions cuando se ha marcado con el atributo AllowPartiallyTrustedCallers (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. Sin embargo, algunos tipos y miembros siguen necesitando permisos más firmes.

En la siguiente lista se relacionan los tipos y miembros que no son invocables por el código de confianza parcial puesto que este atributo de seguridad declarativo tiene un carácter representativo:

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

System.Transactions.Transaction.EnlistDurable

System.Transactions.Transaction.EnlistPromotableSinglePhase

System.Transactions.TransactionInterop

System.Transactions.TransactionManager.DistributedTransactionStarted

System.Transactions.TransactionManager.HostCurrentTransactionCallback

System.Transactions.TransactionManager.Reenlist

System.Transactions.TransactionManager.RecoveryComplete

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)

Para obtener más información sobre los distintos niveles de confianza, vea Security Trust Levels in Accessing Resources.

Tecnologías de desarrollo fundamental\Acceso de datos\Procesamiento de transacciones\

Para obtener más información sobre la forma de utilizar el espacio de nombres System.Transactions, puede consultar la documentación conceptual Transaction Processing, situada en la sección "Tecnologías de desarrollo fundamental\Acceso de datos\Procesamiento de transacciones\" de la documentación. Concretamente, podrá encontrar más información en los temas siguientes.

Features Provided By System.Transactions

Writing A Transactional Application

Implementing A Resource Manager

  Clase Descripción
Clase pública CommittableTransaction Describe una transacción que se puede confirmar.
Clase pública 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.
Clase pública 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.
Clase pública DistributedTransactionPermissionAttribute Permite aplicar acciones de seguridad para DistributedTransactionPermission en el código mediante el uso de la seguridad declarativa. Esta clase no puede heredarse.
Clase pública 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.
Clase pública 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.
Clase pública 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.
Clase pública SubordinateTransaction Representa una transacción que no es raíz y que puede delegarse. Esta clase no puede heredarse.
Clase pública Transaction Representa una transacción.
Clase pública 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.
Clase pública TransactionEventArgs Proporciona los datos para los eventos de transacción siguientes: DistributedTransactionStarted, TransactionCompleted.
Clase pública TransactionException La excepción que se produce cuando intenta trabajar en una transacción que no puede aceptar el nuevo trabajo.
Clase pública 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.
Clase pública TransactionInformation Proporciona información adicional respecto a una transacción.
Clase pública 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.
Clase pública TransactionManager Contiene métodos utilizados para la administración de transacciones. Esta clase no puede heredarse.
Clase pública TransactionManagerCommunicationException La excepción que se produce cuando un administrador de recursos no puede comunicar con el administrador de transacciones.
Clase pública TransactionPromotionException La excepción que se produce cuando hay un error en una promoción.
Clase pública TransactionScope Crea un bloque de código transaccional. Esta clase no puede heredarse.

  Estructura Descripción
Estructura pública TransactionOptions Contiene información adicional que especifica los comportamientos de la transacción.

  Interfaz Descripción
Interfaz pública IDtcTransaction Describe una transacción de DTC.
Interfaz pública IEnlistmentNotification Describe una interfaz que un administrador de recursos implementará con el fin de proporcionar devoluciones de llamada de notificación de confirmación en dos fases al administrador de transacciones al inscribirse para la participación.
Interfaz pública 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.
Interfaz pública ISimpleTransactionSuperior Representa una transacción que no es una transacción raíz, pero se puede escalar para que sea administrado por MSDTC.
Interfaz pública ISinglePhaseNotification Describe un objeto de recurso que admite la optimización de confirmación en una fase para participar en una transacción.
Interfaz pública ITransactionPromoter Describe una transacción delegada para una transacción existente que se puede elevar para ser administrada por MSDTC cuando se necesita.

  Delegado Descripción
Delegado público HostCurrentTransactionCallback Proporciona un mecanismo para el entorno de host para proporcionar su propia noción predeterminada de Current.
Delegado público TransactionCompletedEventHandler Representa el método que controla el evento TransactionCompleted de Transaction.
Delegado público TransactionStartedEventHandler Representa el método que controlará el evento DistributedTransactionStarted de una clase TransactionManager.

  Enumeración Descripción
Enumeración pública DependentCloneOption Controla qué tipo de transacción dependiente se va a crear.
Enumeración pública EnlistmentOptions Determina si el objeto se debería inscribir durante la fase de preparación.
Enumeración pública EnterpriseServicesInteropOption Especifica cómo interactúan las transacciones distribuidas con transacciones COM+.
Enumeración pública IsolationLevel Especifica el nivel de aislamiento de una transacción.
Enumeración pública TransactionScopeAsyncFlowOption [Se admite en .NET Framework 4.5.1 sólo] Especifica si el flujo de la transacción a través de continuaciones de subprocesos está habilitado para TransactionScope.
Enumeración pública TransactionScopeOption Proporciona opciones adicionales para crear un ámbito de la transacción.
Enumeración pública TransactionStatus Describe el estado actual de una transacción distribuida.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft