¿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

System.Transactions (Espacio de nombres)

Actualización: noviembre 2007

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.

a90c30fy.alert_caution(es-es,VS.90).gifNota importante:

Sólo 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, y desarrollarlo. Como introducción, vea el tema Implementar una transacción implícita mediante el ámbito de la transacción. 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 Implementar un administrador de recursos.

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 sólo activa MSDTC cuando realmente es necesario para una transacción. Esta área se trata detalladamente en el tema Extensión de administración de transacción.

  • 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 Optimización con la confirmación de fase única y la confirmación de fase única promocionable.

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 Niveles de confianza de seguridad para obtener acceso a los recursos.

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 Procesar transacciones, 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.

Características proporcionadas por System.Transactions

Writing A Transactional Application

Implementar un administrador de recursos

  ClaseDescripción
a90c30fy.pubclass(es-es,VS.90).gifCommittableTransactionDescribe una transacción que se puede confirmar.
a90c30fy.pubclass(es-es,VS.90).gifDependentTransactionDescribe 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 se puede heredar.
a90c30fy.pubclass(es-es,VS.90).gifDistributedTransactionPermissionPermiso 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 se puede heredar.
a90c30fy.pubclass(es-es,VS.90).gifDistributedTransactionPermissionAttributePermite aplicar acciones de seguridad para DistributedTransactionPermission en el código mediante el uso de la seguridad declarativa. Esta clase no se puede heredar.
a90c30fy.pubclass(es-es,VS.90).gifEnlistmentFacilita la comunicación entre un participante de la transacción inscrito y el administrador de transacciones durante la fase final de la transacción.
a90c30fy.pubclass(es-es,VS.90).gifPreparingEnlistmentFacilita 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.
a90c30fy.pubclass(es-es,VS.90).gifSinglePhaseEnlistmentProporciona 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.
a90c30fy.pubclass(es-es,VS.90).gifSubordinateTransactionRepresenta una transacción que no es raíz y que puede delegarse. Esta clase no se puede heredar.
a90c30fy.pubclass(es-es,VS.90).gifTransactionRepresenta una transacción.
a90c30fy.pubclass(es-es,VS.90).gifTransactionAbortedExceptionLa 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.
a90c30fy.pubclass(es-es,VS.90).gifTransactionEventArgsProporciona los datos para los eventos de transacción siguientes: DistributedTransactionStarted, TransactionCompleted.
a90c30fy.pubclass(es-es,VS.90).gifTransactionExceptionLa excepción que se produce cuando intenta trabajar en una transacción que no puede aceptar el nuevo trabajo.
a90c30fy.pubclass(es-es,VS.90).gifTransactionInDoubtExceptionLa 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.
a90c30fy.pubclass(es-es,VS.90).gifTransactionInformationProporciona información adicional respecto a una transacción.
a90c30fy.pubclass(es-es,VS.90).gifTransactionInterop 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 se puede heredar.
a90c30fy.pubclass(es-es,VS.90).gifTransactionManagerContiene métodos utilizados para la administración de transacciones. Esta clase no se puede heredar.
a90c30fy.pubclass(es-es,VS.90).gifTransactionManagerCommunicationExceptionLa excepción que se produce cuando un administrador de recursos no puede comunicarse con el administrador de transacciones.
a90c30fy.pubclass(es-es,VS.90).gifTransactionPromotionExceptionLa excepción que se produce cuando se produce un error en una promoción.
a90c30fy.pubclass(es-es,VS.90).gifTransactionScopeCrea un bloque de código transaccional. Esta clase no se puede heredar.

  EstructuraDescripción
a90c30fy.pubstructure(es-es,VS.90).gifTransactionOptionsContiene información adicional que especifica los comportamientos de la transacción.

  InterfazDescripción
a90c30fy.pubinterface(es-es,VS.90).gifIDtcTransactionDescribe una transacción de DTC.
a90c30fy.pubinterface(es-es,VS.90).gifIEnlistmentNotificationDescribe 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.
a90c30fy.pubinterface(es-es,VS.90).gifIPromotableSinglePhaseNotificationDescribe un objeto que actúa como un delegado de confirmación para una transacción no distribuida interna a un administrador de recursos.
a90c30fy.pubinterface(es-es,VS.90).gifISimpleTransactionSuperiorRepresenta una transacción que no es una transacción raíz, pero se puede escalar para que sea administrado por MSDTC.
a90c30fy.pubinterface(es-es,VS.90).gifISinglePhaseNotificationDescribe un objeto de recurso que admite la optimización de confirmación en una fase para participar en una transacción.
a90c30fy.pubinterface(es-es,VS.90).gifITransactionPromoterDescribe una transacción delegada para una transacción existente que se puede elevar para ser administrada por MSDTC cuando se necesita.

  DelegadoDescripción
a90c30fy.pubdelegate(es-es,VS.90).gifHostCurrentTransactionCallbackProporciona un mecanismo para el entorno de host para proporcionar su propia noción predeterminada de Current.
a90c30fy.pubdelegate(es-es,VS.90).gifTransactionCompletedEventHandlerRepresenta el método que controla el evento TransactionCompleted de Transaction.
a90c30fy.pubdelegate(es-es,VS.90).gifTransactionStartedEventHandlerRepresenta el método que controlará el evento DistributedTransactionStarted de una clase TransactionManager.

  EnumeraciónDescripción
a90c30fy.pubenumeration(es-es,VS.90).gifDependentCloneOptionControla qué tipo de transacción dependiente se va a crear.
a90c30fy.pubenumeration(es-es,VS.90).gifEnlistmentOptionsDetermina si el objeto se debería inscribir durante la fase de preparación.
a90c30fy.pubenumeration(es-es,VS.90).gifEnterpriseServicesInteropOptionEspecifica cómo interactúan las transacciones distribuidas con transacciones COM+.
a90c30fy.pubenumeration(es-es,VS.90).gifIsolationLevelEspecifica el nivel de aislamiento de una transacción.
a90c30fy.pubenumeration(es-es,VS.90).gifTransactionScopeOptionProporciona opciones adicionales para crear un ámbito de la transacción.
a90c30fy.pubenumeration(es-es,VS.90).gifTransactionStatusDescribe el estado actual de una transacción distribuida.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft