Compatibilidad con transacciones y confirmación en dos fases
En termwinología COM, una transacción es siempre una unidad de trabajo que es atómica, coherente, aislada y duradera (ACID). En la terminología del sistema central, una transacción puede o no ser una transacción ACID; en la terminología del sistema central, una transacción es un conjunto de operaciones o comandos en un programa de transacciones (TP). Esta diferencia en la terminología puede resultar confusa. La palabra transacción tal como se usa en ti Manager y TI Designer siempre hace referencia a una transacción ACID.
La confirmación en dos fases (2PC) es un protocolo que permite que un conjunto de operaciones de aplicación (o entre aplicaciones) o comandos se revierten o se confirmen como una sola unidad transaccional.
Nota
Si invoca un servidor de automatización de TI a través del protocolo TCP/IP, no hay compatibilidad con transacciones de confirmación en dos fases. La confirmación en dos fases solo funciona sobre el protocolo APPC/LU 6.2 de SNA.
Un componente de TI tiene cuatro posibles propiedades transaccionales:
Requiere transacción
Requiere una nueva transacción
Admite transacciones
No admite transacciones
Las dos primeras opciones requieren que el TP del sistema central sea transaccional (es decir, cumplir las propiedades ACID) y admitir el nivel de sincronización 2. Esto es transparente para el TP del sistema central si es un programa CICS Link o IMS versión 6.0 o posterior. La tercera opción requiere que el TP del sistema central admita las solicitudes de nivel de sincronización 2 y controle la semántica de transacciones de forma adecuada. La cuarta opción es necesaria para los CSP de IMS anteriores a la versión 6.0 de IMS y para los TP de CICS que solo admiten el nivel de sincronización 0 o el nivel de sincronización 1.
Si se invoca un componente de TI dentro del ámbito de una transacción COM+, TI establecerá una conversación de nivel de sincronización 2 con CICS (de lo contrario, se usa el nivel de sincronización 0). Esto es transparente para el cliente del componente de TI. Si el TP del sistema central es un programa CICS Link, la naturaleza transaccional de la conversación también es transparente para el TP, ya que la transacción reflejada de IBM en CICS (CSMI) controla el protocolo Sync Level 2 y el TP al que está vinculado no es consciente de si se usa el nivel de sincronización 0 o el nivel de sincronización 2.
TI cumple con el modelo de programación COM+ llamando a SetComplete o SetAbort cuando completa el funcionamiento de cada llamada de método desde el cliente. Si no se detectaron errores, TI llama a SetComplete; de lo contrario, llama a SetAbort. TI también llama a SetAbort si el TP del sistema central indica que la transacción no debe confirmarse estableciendo la marca DisableCommit en el bloque de error de metadatos devuelto. Las aplicaciones cliente de Automatización de TI también pueden optar por llamar a SetAbort si determinan que hay problemas de nivel de aplicación que deben prohibir que la transacción se confirme.
Cuando se devuelve la llamada al método del cliente, el TP del sistema central ha realizado alguna unidad de trabajo, pero los cambios en los recursos protegidos de CICS aún no se confirman. TI usa nuevas interfaces DTC para dar de alta la conversación de nivel de sincronización 2 en la transacción DTC. Cuando DTC está listo para confirmar o anular la transacción, se comunica con TI para impulsar los flujos de confirmación en dos fases adecuados en la conversación lu 6.2. De nuevo, ti realiza de forma transparente todo el trabajo de 2PC en nombre del cliente.
Aunque el objeto de TI se puede desactivar cuando se completa el método, la conversación debe mantenerse hasta que la transacción se confirme o anule. Los usuarios pueden afectar negativamente al rendimiento y vincular los recursos del sistema si su código de aplicación realiza una o varias llamadas al método transaccional, pero no confirma la transacción durante un largo período de tiempo. El código de usuario mal estructurado puede consumir conversaciones rápidamente.
Cuando una conversación está esperando a confirmarse, se divorciará del objeto con el que estaba asociado. TI administra un grupo de estas conversaciones "en espera" y realiza las operaciones de nivel de sincronización necesarias cuando se reciben las notificaciones adecuadas de DTC. Cuando sea posible, TI reutiliza estas conversaciones para minimizar la sobrecarga.
TI también proporciona un servicio de resincronización (SNA LU 6.2 Resync TP). Este servicio de Windows está configurado para que sea el servicio invocable automáticamente para el TP de resincronización definido por SNA (0x06f2). El servicio Resync implementa las funciones "Nombres de registro de Exchange" y "Comparar estados" de un administrador de transacciones SNA. Permite que DTC (Coordinador de transacciones distribuidas) y CICS inicien el proceso de recuperación según sea necesario durante el inicio del sistema o después de un error de comunicación o sistema.
Para obtener información sobre los flujos SyncPoint o 2PC de IBM, SNA SyncPoint Services Architecture Reference (IBM SC31-8134-00). Todos los flujos de TI 2PC se implementan de acuerdo con esta arquitectura.
Nota
Para obtener información sobre cómo usar LOS CSP de vínculo CICS que usan comandos SYNCPOINT explícitos, vea CSP con comandos SYNCPOINT explícitos.
En resumen, para usar la confirmación en dos fases, debe cumplir todos los requisitos siguientes:
Las LU locales y remotas deben tener habilitada la compatibilidad con SyncPoint en el nodo Host Integration Server.
Cada LU local y remota debe apuntar al equipo que ejecuta servicios de resincronización.
El entorno remoto (RE) debe tener habilitada la compatibilidad con el nivel de sincronización 2. Para comprobarlo, haga clic con el botón derecho en el Administrador de TI, haga clic en Propiedades y, a continuación, haga clic en la pestaña LU 6.2.
El componente de TI debe tener compatibilidad con transacciones establecida en Compatible, Obligatorio o Requiere nuevo. Para comprobar esta configuración, haga clic con el botón derecho en el componente ti en el Administrador de TI, haga clic en Propiedades y, a continuación, haga clic en la pestaña Transacciones.
El equipo host remoto debe configurarse para la compatibilidad con el nivel de sincronización 2.