Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las transacciones enlazan varias tareas juntas. Por ejemplo, imagine que una aplicación realiza dos tareas. En primer lugar, crea una nueva tabla en una base de datos. A continuación, llama a un objeto especializado para recopilar, dar formato e insertar datos en la nueva tabla. Estas dos tareas están relacionadas e incluso interdependientes, de modo que quiera evitar la creación de una nueva tabla a menos que pueda rellenarla con datos. La ejecución de ambas tareas dentro del ámbito de una sola transacción exige la conexión entre ellas. Si se produce un error en la segunda tarea, la primera tarea se revierte a un punto antes de crear la nueva tabla.
Para garantizar un comportamiento predecible, todas las transacciones deben poseer las propiedades ACID básicas (atómicas, coherentes, aisladas y duraderas). Estas propiedades refuerzan el rol de transacciones críticas para una misión como proposiciones todos-o-ninguno. Para obtener más información sobre ACID, consulte ACID Properties. En resumen, ACID garantiza que un conjunto de tareas relacionadas tenga éxito o falle como una unidad. En la terminología del procesamiento de transacciones, la transacción se confirma o se aborta. Para que una transacción se confirme, todos los participantes deben garantizar que cualquier cambio en los datos sea permanente. Los cambios deben conservarse a pesar de bloqueos del sistema u otros eventos imprevistos. Si incluso un solo participante no puede realizar esta garantía, se produce un error en toda la transacción. Todos los cambios de los datos dentro del ámbito de la transacción se deshacen hasta un punto fijo concreto.
Una transacción se puede limitar a un único recurso de datos, como una base de datos o una cola de mensajes. En este escenario, la transacción local se administra mediante el Administrador de transacciones proporcionado por System.Transactions , lo que genera una ganancia de rendimiento. Controlada por el recurso de datos, estas transacciones son eficaces y fáciles de administrar.
Las transacciones también pueden abarcar varios recursos de datos. Las transacciones distribuidas permiten incorporar varias operaciones distintas que se producen en distintos sistemas en una sola acción de paso o error. En este escenario, las transacciones se coordinan mediante el Coordinador de transacciones distribuidas de Microsoft (MSDTC) que reside en cada sistema.
Al desarrollar una aplicación transaccional mediante las clases proporcionadas por System.Transactions, no es necesario preocuparse por qué tipo de transacciones necesita o el administrador de transacciones implicado. La infraestructura System.Transactions administra automáticamente éstos para usted.
Al crear una transacción, puede especificar el nivel de aislamiento que se aplica a la transacción. El nivel de aislamiento, definido por la IsolationLevel enumeración, determina qué nivel de acceso tendrán otras transacciones a los datos afectados por la transacción.
Puede crear las transacciones utilizando ADO.NET,System.EnterpriseServices o el nuevo modelo de programación transaccional proporcionado por el espacio de nombres System.Transactions. En el tema Características proporcionadas por System.Transactions se describen las características que puede usar para escribir una aplicación transaccional mediante el System.Transactions espacio de nombres .