Características proporcionadas por System.Transactions

En esta sección se describe cómo se pueden utilizar las características proporcionadas por el espacio de nombres System.Transactions para escribir su propia aplicación transaccional y administrador de recursos. Específicamente, esta sección trata de cómo crear y participar en una transacción (local o distribuida) con uno o varios participantes.

Información general sobre System.Transactions

La infraestructura proporcionada por las clases en el espacio de nombres 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, Message Queuing (MSMQ) y MSDTC (Coordinador de transacciones distribuidas de Microsoft). El espacio de nombres System.Transactions proporciona un modelo de programación explícito según la clase Transaction, así como un modelo de programación implícito utilizando la clase TransactionScope, en la que la infraestructura administra automáticamente las transacciones. Para obtener más información sobre cómo crear una aplicación transaccional utilizando estos dos modelos, vea Crear una aplicación transaccional.

El espacio de nombres System.Transactions también proporciona tipos para implementar un administrador de recursos. Un administrador de recursos administra los datos duraderos o volátiles que se utilizan en una transacción, y trabaja en cooperación con el administrador de transacciones para dotar a la aplicación de una garantía de atomicidad y aislamiento. El administrador de transacciones que proporciona la infraestructura System.Transactions admite transacciones que implican varios recursos volátiles o un recurso duradero único. Para más información sobre cómo implementar 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 con un administrador de transacciones basado en disco como DTC. La infraestructura System.Transactions proporciona un rendimiento mejorado principalmente de dos formas:

  • Subida dinámica, que asegura que la infraestructura System.Transactions sólo activa el MSDTC cuando una transacción abarca varios recursos distribuidos. Para obtener más información sobre la elevación dinámica vea 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 la MSDTC. Esto reduce aún más la oportunidad de utilizar MSDTC. Las inscripciones promocionales se tratan en profundidad en este tema Optimización con la confirmación de fase única y la confirmación de fase única promocionable.

El espacio de nombres System.Transactions define tres niveles de confianza - AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) y plena confianza - que restringe el acceso a los tipos de recursos que expone. Para obtener más información sobre los distintos niveles de confianza, vea Niveles de confianza de seguridad para obtener acceso a los recursos.

En esta sección

Crear una aplicación transaccional

El espacio de nombres System.Transactions proporciona dos modelos para crear aplicaciones transaccionales. Implementar una transacción implícita mediante el ámbito de la transacción describe cómo el espacio de nombres System.Transactions admite la creación de transacciones implícitas utilizando la clase TransactionScope .

Implementar una transacción explícita mediante CommittableTransaction describe cómo el espacio de nombres System.Transactions admite la creación de transacciones explícitas utilizando la claseCommittableTransaction.

Para consultar temas adicionales que traten sobre cómo escribir una aplicación transaccional, vea Crear una aplicación transaccional.

Implementar un administrador de recursos

Para implementar un administrador de recursos que pueda participar en una transacción, vea Implementar un administrador de recursos. En esta sección trata la inscripción de un recurso, la confirmación de transacciones, la recuperación después del error, y los procedimientos recomendados de la optimización.

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.