confirmación en dos fases
Una operación de lógica de negocios determinada puede suponer la ejecución de varios programas en distintos equipos. En este diseño, la transacción no se considera completa a menos que todos los programas implicados terminen de ejecutarse correctamente. Para que estos programas comprueben que todos los demás programas que forman parte de la transacción han completado sus transacciones, deben emplear el protocolo de confirmación en dos fases (2PC).
El término transacción, o cualquiera de sus derivados, como transaccional, puede ser engañoso. En muchos casos, el término transacción describe un único programa que se ejecuta en un equipo central que no usa el protocolo 2PC. Sin embargo, en otros casos, se usa para denotar una operación realizada por varios programas en diferentes equipos que usan el protocolo 2PC.
El protocolo 2PC se denomina así porque emplea las dos fases siguientes antes de confirmar la operación realizada:
Fase 1: Preparación. En esta fase, cada uno de los programas implicados en la transacción envía un mensaje al administrador de TP, como el Coordinador de transacciones distribuidas (MS DTC), para informar al administrador de TP de que está listo para realizar su parte de la operación y de que es capaz de hacerlo. Esta fase también se conoce como preparación, porque los programas están preparados para confirmar los cambios o revertirlos. Si el administrador de TP recibe la confirmación de cada uno de los programas implicados, pasa a la fase 2.
Fase 2: confirmación o reversión. En esta fase, el administrador de TP indica a cada uno de los programas que confirme o revierta todos los cambios solicitados como parte de la transacción. Una reversión ejecutada correctamente debe devolver el sistema a su estado original.
Nota
El estado entre las fases 1 y 2 se conoce como estado dudoso. Los desarrolladores que usan .NET en sus aplicaciones pueden decidir qué partes de la aplicación requieren o no acceso a un TP. TI extiende esta opción también al sistema central, controlando las llamadas que requieren y que no requieren transacciones. Para las aplicaciones que requieren la integración completa entre la confirmación en dos fases basada en Windows y las transacciones de nivel 2 de sincronización basadas en el sistema central, TI proporciona toda la funcionalidad necesaria. TI hace esto sin necesidad de cambiar la aplicación cliente, sin colocar código ejecutable en el sistema central y con poco o ningún cambio en los TP del sistema central. La aplicación cliente no necesita distinguir entre el componente de TI y ninguna otra referencia de componente.
En la ilustración siguiente se muestra cómo una aplicación cliente basada en Windows usa implícitamente el Coordinador de transacciones distribuidas (Microsoft DTC) para coordinar la confirmación en dos fases de una transacción distribuida relacionada con SQL Server y un TP de CICS. DTC coordina las transacciones 2PC.
Aplicación cliente que usa el Integrador de transacciones y DTC para coordinar una confirmación en dos fases entre SQL Server y una aplicación CICS.
Nota
El Integrador de transacciones solo admite 2PC al conectarse a un sistema central a través de LU 6.2 (APPC) con el procesamiento iniciado por Windows. Al conectarse directamente a través de TCP/IP, no hay compatibilidad con 2PC disponible mediante TI.
Aplicación cliente con TI y DTC
Las transacciones de confirmación en dos fases (2PC) implican varios componentes. Para usar el Integrador de transacciones (TI) correctamente, debe comprender los componentes y la terminología siguientes relacionados con 2PC:
Punto de sincronización de nivel 2
Los TP pueden interactuar entre sí mediante el protocolo LU6.2 en uno de los tres niveles de sincronización: nivel de sincronización 0, nivel de sincronización 1 o nivel de sincronización 2. Solo uno de estos tres niveles de sincronización, es decir, el nivel 2, usa el protocolo 2PC. El nivel de sincronización 0 no tiene integridad de mensajes, mientras que el nivel de sincronización 1 admite una integridad de datos limitada.
Administrador de TP
El administrador del programa de transacción (TP) es un servicio del sistema que es responsable de coordinar el resultado de las transacciones para poder lograr atomicidad. Los administradores de TP garantizan que los administradores de recursos alcancen una decisión coherente sobre si la transacción debe confirmarse o anularse. El administrador de TP de Windows es MS DTC.
Servicio de resincronización
El servicio de resincronización LU6.2 es un componente de Host Integration Server que funciona con MS DTC para realizar la recuperación automática a un estado coherente como resultado de errores en cualquier momento de una transacción 2PC. El servicio de resincronización LU6.2 se instala de forma predeterminada al instalar Host Integration Server.
Resource Manager
El administrador de recursos es un servicio del sistema que administra datos duraderos. Las aplicaciones de servidor usan administradores de recursos para mantener el estado duradero de la aplicación, como un registro de inventario disponible, pedidos pendientes y cuentas por cobrar. Los administradores de recursos trabajan en cooperación con el administrador de transacciones para proporcionar una garantía de atomicidad y aislamiento a la aplicación (mediante el protocolo 2PC). Microsoft SQL Server™ y TI son ejemplos de administradores de recursos.
Consulte también
Transacciones de Windows frente a transacciones del sistema central
Procesamiento de transacciones en línea