Esta documentación está archivada y no tiene mantenimiento.

Fundamentos de las transacciones

Las transacciones enlazan varias tareas entre sí. Por ejemplo, si una aplicación realiza dos tareas, crea en primer lugar una tabla nueva en una base de datos y, después, llama a un objeto especializado para recopilar, dar formato e insertar datos en la tabla nueva. Estas dos tareas están relacionadas entre sí e incluso son interdependientes, de modo que se ha de evitar la creación de una tabla nueva salvo que se pueda rellenar con datos. La ejecución de ambas tareas dentro del ámbito de una transacción individual fuerza la conexión entre ellas. Si la segunda tarea presenta errores, la primera se deshace hasta un punto anterior a la creación de la tabla nueva.

Para garantizar un comportamiento predecible, todas las transacciones deben poseer las propiedades ACID básicas (atómica, coherente, aislada y duradera). Estas propiedades refuerzan la función de las transacciones críticas, así como las proposiciones todo o nada. Para obtener más información sobre ACID, vea la página sobre las propiedades ACID. En resumen, ACID garantiza que un conjunto de tareas relacionadas se ejecuten correctamente o presenten problemas como unidad. En términos de procesamiento, las transacciones se confirman o se anulan. Para que una transacción se confirme, todos los participantes deben garantizar la permanencia de los cambios efectuados en los datos. Los cambios deben conservarse aunque el sistema se bloquee o tengan lugar otros eventos imprevistos. Basta con que un solo participante no pueda garantizar este punto para que la transacción no funcione en su totalidad. Todos los cambios efectuados en datos dentro del ámbito de la transacción se deshacen hasta un punto específico establecido.

Una transacción se puede confinar a un único recurso de datos, como una base de datos o una cola de mensajes. En este caso, el administrador de transacciones administra la transacción local proporcionada por System.Transactions, que genera una mejora del rendimiento. El control de estas transacciones por el recurso de datos hace que sean eficaces y fáciles de administrar.

Las transacciones también pueden abarcar varios recursos de datos. Las transacciones distribuidas permiten incorporar en una sola acción de cumplimiento o incumplimiento varias operaciones distintas que tienen lugar en sistemas diferentes. En este caso, las transacciones se coordinan mediante el Coordinador de transacciones distribuidas de Microsoft (MSDTC) que reside en cada sistema.

Si desarrolla una aplicación de transacciones con las clases que proporciona System.Transactions, no tiene que preocuparse sobre el tipo de transacciones que necesita o el administrador de transacciones implicado. La infraestructura de System.Transactions las administra de forma automática.

Cuando se crea una transacción, se puede especificar el nivel de aislamiento aplicable a la transacción. El nivel de aislamiento, definido por la clase IsolationLevel, determina el nivel de acceso que otras transacciones tendrán a los datos a los que afecte la transacción.

Puede crear transacciones con ADO.NET, System.EnterpriseServices o el nuevo modelo de programación de transacciones que proporciona el espacio de nombres System.Transactions. En la sección Características que proporciona System.Transactions se describen las características que se pueden utilizar para escribir una aplicación de transacciones con el espacio de nombres System.Transactions.

Vea también

Mostrar: