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.
Un administrador de transacciones (TM) es una instancia de un registro. En KTM, los objetos TM especifican el registro y algunas de las funciones de TM. Normalmente hay muchos objetos TM en un nodo determinado. Los administradores de recursos (RMs) deben estar asociados a un TM específico. Hay tres tipos de máquinas virtuales:
- Un TM volátil, que no tiene registro.
- Un TM normal, que tiene un registro y se usa para coordinar las transacciones de uno o varios RMs.
- Un administrador de transacciones superior.
Administradores de transacciones volátiles
Un TM volátil es un TM para RMs volátiles o de solo lectura. No tiene un registro y no conserva el estado de las transacciones en los reinicios del sistema.
Administradores de transacciones
Las máquinas virtuales tienen un registro, uno o varios RMs duraderos o volátiles, o ambos. El TM conservará el estado de una transacción entre reinicios del sistema hasta que se completen las transacciones. Se usa un modelo de anulación supuesta, por lo que las transacciones que estaban activas pero no preparadas cuando se apaga el objeto TM se revierten. Cuando abra un TM por primera vez, debe recuperar el TM llamando a la función RecoverTransactionManager.
Administradores de transacciones superiores
Un TM superior es un TM para otras máquinas virtuales. Coordina las transacciones. También emite TRANSACTION_NOTIFY_PREPARE notificaciones al Administrador de transacciones de kernel (KTM). Un ejemplo de TM superior es el Coordinador de transacciones distribuidas (DTC) de Microsoft. Esta capacidad incluye una responsabilidad adicional en tiempo de recuperación. Durante la recuperación, RM debe llamar primero a la función OpenEnlistment para volver a abrir la inscripción. También debe entregar (o volver a entregar) el resultado de la transacción si se confirmó la transacción; es libre de entregar un resultado llamando a la función CommitTransaction o a la función RollbackTransaction. Esta obligación no finaliza hasta que haya recibido un evento de notificación de TRANSACTION_NOTIFY_COMMIT_COMPLETE o TRANSACTION_NOTIFY_ROLLBACK_COMPLETE asociado. Si un TM superior no puede realizar estas operaciones en tiempo de recuperación, KTM limpiará las transacciones que no hayan recibido resultados al final de la fase de recuperación. Sin embargo, esto puede dar lugar a resultados de transacciones incoherentes.
Funciones del Administrador de transacciones
Las siguientes funciones se usan con administradores de transacciones.
| Función | Descripción |
|---|---|
| CreateTransactionManager | Crea un nuevo objeto de administrador de transacciones (TM) y devuelve un identificador con el acceso especificado. |
| GetCurrentClockTransactionManager | Obtiene un valor de reloj virtual de un administrador de transacciones. |
| GetTransactionManagerId | Obtiene un identificador para el administrador de transacciones especificado. |
| OpenTransactionManager | Abre un administrador de transacciones existente. |
| RecoverTransactionManager | Recupera el estado de un administrador de transacciones de su archivo de registro. |
| rollforwardTransactionManager | Recupera el estado de un administrador de transacciones de su archivo de registro al valor de reloj virtual especificado. |