Leer en inglés

Compartir a través de


Transacciones

Una transacción es un objeto que define una unidad lógica de trabajo. La transacción está activa siempre que haya un identificador que haga referencia a la transacción y se considere activa si la transacción aún no se ha confirmado o revertido. Si se crea una transacción y se cierran todos los identificadores antes de que se produzca una confirmación o reversión, la transacción se revertirá.

Considere el caso de un cliente transaccional en modo de usuario que crea una transacción para definir el ámbito de sus operaciones y, a continuación, realiza actualizaciones en uno o varios administradores de recursos. Ocurre lo siguiente:

  1. El cliente llama a la función CreateTransaction para crear la transacción y recibe un identificador de esa transacción como valor devuelto.

    La transacción se puede abrir o heredar por cualquier número de procesos; cada proceso está implicado en la transacción. El error de cualquiera de estos procesos hará que la transacción se anule.

    Es posible que esta transacción aún no sea persistente. Solo las transacciones que han alcanzado el estado preparado deben recuperarse en los errores del sistema si la transacción usa el registro supuesto-anulación.

  2. El cliente debe pasar explícitamente una transacción al administrador de recursos.

  3. El cliente realiza todas sus operaciones transaccionales con uno o varios RMs, como sistemas de archivos con transacciones.

  4. El cliente llama a la función CommitTransaction .

  5. El administrador de recursos recibe notificaciones de KTM para preparar y confirmar sus datos.

Transacciones y subprocesos

Las transacciones no son las mismas que los subprocesos. Varios subprocesos o procesos pueden formar parte de una sola transacción. Por el contrario, un subproceso puede formar parte de varias transacciones diferentes en momentos diferentes.

Funciones de transacción

Las siguientes funciones se usan con transacciones.

Función Descripción
CommitTransaction Solicita que se confirme la transacción especificada.
CommitTransactionAsync Solicita que se confirme la transacción especificada.
CreateTransaction Crea un nuevo objeto de transacción.
GetTransactionInformation Devuelve la información solicitada sobre la transacción especificada.
OpenTransaction Abre una transacción existente.
RollbackTransaction Solicita que se revierte la transacción especificada.
RollbackTransactionAsync Solicita que se revierte la transacción especificada. Esta función devuelve de forma asincrónica.
SetTransactionInformation Establece la información de transacción de la transacción especificada.