Compartir a través de


Administradores de recursos

Un administrador de recursos usa el registro del administrador de transacciones para realizar un seguimiento del estado de la transacción. La acción del administrador de recursos al procesar una transacción es la siguiente:

  • El cliente pasa una transacción al RM explícitamente.
  • Rm se inscribe en la transacción mediante CreateEnlistment.
  • Después, el usuario puede continuar para realizar cualquier operación.
  • Cuando el usuario llama a CommitTransaction, KTM envía una notificación PREPARE_TRANSACTION al RM. En este momento, el RM vacía en el disco los cambios que serían necesarios para confirmar la transacción, pero podría producir un error. Si estas operaciones se realizan correctamente, RM indica que ha terminado con la operación de preparación llamando a PrepareComplete. Si se produce un error en estas operaciones, rm responde llamando a RollBackEnlistment.
  • El administrador de recursos recibe una notificación de preparación.
  • El administrador de recursos vacía los datos asociados a la transacción en su archivo de registro de Common Log Services.
  • El administrador de recursos llama a la funciónPrepareComplete y espera a recibir el resultado de la transacción de KTM.
  • Según el resultado de la transacción, el administrador de recursos recibe un evento de notificación de confirmación o reversión. Si el administrador de recursos recibe una notificación de confirmación, realiza los cambios permanentes e informa al KTM llamando a la función CommitComplete. Si el administrador de recursos recibe una notificación de reversión, descarta todos los cambios y revierte al estado que existía antes de cualquiera de los cambios transaccionados e informa al KTM llamando a RollbackComplete.

Funciones de Resource Manager

Las funciones siguientes se usan con administradores de recursos.

Función Descripción
CreateResourceManager Crea un nuevo objeto de Resource Manager (RM) y asocia el RM a un administrador de transacciones (TM).
GetNotificationResourceManager Solicita y recibe una notificación para un administrador de recursos (RM). El registro RM usa esta función para recibir notificaciones cuando cambia el estado de una transacción.
GetNotificationResourceManagerAsync Solicita y recibe una notificación asincrónica para un administrador de recursos (RM). El registro RM usa esta función para recibir notificaciones cuando cambia el estado de una transacción.
OpenResourceManager Abre un administrador de recursos (RM) existente.
prepareComplete Indica que el administrador de recursos (RM) ha completado todo el procesamiento necesario para garantizar que una operación de confirmación o anulación se realizará correctamente para la transacción especificada.
PrePrepareComplete Indica que este administrador de recursos ha completado su trabajo previo para que otros administradores de recursos puedan comenzar ahora sus operaciones de preparación.
SetResourceManagerCompletionPort Asocia el puerto de finalización de E/S especificado con el administrador de recursos (RM) especificado. Este puerto recibe todas las notificaciones del RM.