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:
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.
El cliente debe pasar explícitamente una transacción al administrador de recursos.
El cliente realiza todas sus operaciones transaccionales con uno o varios RMs, como sistemas de archivos con transacciones.
El cliente llama a la función CommitTransaction .
El administrador de recursos recibe notificaciones de KTM para preparar y confirmar sus datos.
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.
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. |