Vínculo de mensaje de solicitud de transacción de TCP
El modelo de vínculo de mensaje de solicitud de transacción (TRM) TCP permite pasar datos y parámetros entre integrador de transacciones y el programa de transacción del servidor a través de COMMAREA. El modelo también permite que un servidor simultáneo se vincule a un programa DPL de CICS. El cliente de escucha estándar para TCP/IP usa dos intercambios de red para ejecutar un único programa de transacción y requiere que el cliente haga lo siguiente:
Envíe un mensaje de solicitud de transacción (TRM) al cliente de escucha estándar.
Reciba una respuesta TRM del programa de aplicación.
Envíe el flujo de datos de solicitud de aplicación al programa de transacción de servidor.
Reciba los datos de respuesta de la aplicación del programa de transacción del servidor.
El modelo TCP TRM Link se basa en el modelo de servidor simultáneo de CICS. El modelo TCP TRM Link es una variante de Microsoft que admite la ejecución de programas de aplicación de servidor DPL dentro del entorno CICS y mantiene la compatibilidad con el modelo de programación CICS LU6.2 Link.
En la imagen siguiente se resume el flujo de trabajo entre el cliente, el cliente de escucha de CICS mejorado, el servidor simultáneo y el programa de transacción de sistema central. Los números entre paréntesis indican el orden aproximado en el que se producen los eventos. Después de la ilustración se muestra una descripción más detallada de los eventos.
Proceso por el que el cliente inicia el cliente de escucha predeterminado, que pasa la llamada al servidor simultáneo, que luego envía y recibe datos del cliente, que el servidor luego pasa al programa DPL de CICS para su procesamiento por parte de la lógica de negocios.
Resumen del flujo de trabajo del modelo de programación TCP TRM Link
El modelo de programación TCP TRM Link funciona de la siguiente manera:
Una aplicación invoca un método en un componente del integrador de transacciones configurado en servicios de componentes o en .NET Framework.
El entorno de ejecución de TI llama al proxy de Automation de TI.
Si la aplicación es un componente COM+, el proxy de Automation de TI hace lo siguiente:
Lee la biblioteca de tipos que creó anteriormente el Diseñador de TI.
Asigna los tipos de datos de automatización a tipos de datos COBOL.
Si la aplicación es un ensamblado de .NET Framework, el proxy de Automation del integrador de transacciones realiza las siguientes acciones:
Lee el ensamblado y los metadatos que creó anteriormente el Diseñador del integrador de transacciones.
Asigna los tipos de datos de .NET Framework a los tipos de datos COBOL.
Luego, el proxy de Automation de TI hace lo siguiente:
Llama a las rutinas de conversión para convertir los datos de la aplicación en tipos COBOL del sistema central.
Compila el búfer del flujo de datos plano que representa el cuaderno de copia o la declaración de COBOL.
Pasa el flujo de datos al componente de transporte TCP.
El transporte TCP del integrador de transacciones envía una solicitud de conexión al cliente de escucha estándar mediante la dirección IP (Protocolo de Internet) del equipo de sistema central y la dirección del puerto del cliente de escucha.
El agente de escucha estándar acepta la solicitud de conexión e indica al tiempo de ejecución de TI que envíe el TRM. A continuación, el agente de escucha estándar espera el TRM.
El TRM es un registro de datos con formato que identifica el programa de transacción del servidor que se va a invocar mediante su TRANID. El programa de transacción del cliente de escucha es un programa de transacción especial del sistema central cuya función principal es la de recibir las invocaciones del programa de transacción del servidor que envían las aplicaciones cliente que ejecutan TCP/IP.
El TRANID del programa de transacción del cliente de escucha estándar proporcionado por IBM es CSKL. El nombre del programa de transacción del cliente de escucha tal y como aparece en la tabla de control de programa (PCT) de CICS es EZACIC02.
El entorno de ejecución del integrador de transacciones da formato a un TRM estándar o personalizado y lo envía al cliente de escucha estándar. A continuación, el entorno de ejecución del integrador de transacciones espera la respuesta de TRM.
El cliente de escucha estándar recibe el TRM, envía al entorno de ejecución del integrador de transacciones una confirmación de recepción y, luego, lee el contenido del TRM. El cliente de escucha interpreta la información del TRM y extrae el identificador de transacción del programa de servidor simultáneo que va a dar servicio a la solicitud.
El cliente de escucha estándar inicia el programa de procesamiento de transacciones de servidor simultáneo (la aplicación de ejemplo Mscmtics.cbl) que se identifica mediante el TRANID del TRM mediante el inicio de EXEC CICS.
Mscmtics.cbl es el archivo de procesamiento de transacciones de ejemplo de Microsoft que se usa para pasar datos entre TI y el método de procesamiento de transacciones del servidor mediante COMMAREA. Microsoft desarrolla el método de procesamiento de transacciones de ejemplo Mscmtics.cbl y se proporciona como parte del software de Host Integration Server. Se encuentra en $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp. Antes de usar este modelo, debe compilarse, vincularse e instalarse el código en el equipo de sistema central.
Nota
Si el cliente de escucha estándar no puede iniciar el servidor simultáneo, el cliente de escucha da formato a un mensaje de error y lo devuelve al transporte TCP de COMTI. Estos son algunos de los motivos por los que es posible que el cliente de escucha no pueda iniciarse:
Se rechazó la conexión debido a recursos de CICS limitados (por ejemplo, se supera el número máximo de tareas CICS o tareas del servidor simultáneo).
El TRANID no es válido o está deshabilitado para el servidor simultáneo.
El programa de servidor simultáneo asociado al identificador de transacción no es válido, está deshabilitado o no se encuentra disponible.
Nota
El mensaje de error del agente de escucha de CICS se basa en caracteres y siempre comienza con las letras EZY. La longitud del mensaje de error es variable, y el final del mensaje viene determinado por el socket que cerró el agente de escucha de CICS. El agente de escucha estándar llama a la interfaz de protocolo de aplicación de socket (API) en el entorno de host. El agente de escucha estándar no puede enviar la respuesta TRM. La respuesta TRM representa un proceso de sincronización que permite que el programa de transacciones se pueda iniciar antes de que el cliente envíe los datos de solicitud de aplicación. Este proceso de sincronización es necesario debido a la consideración interna de la arquitectura de CICS (no hay ninguna garantía sobre cuándo se inicia un programa de transacción después de realizar la solicitud).
Después de que el cliente de escucha de CICS estándar haya emitido el comando de inicio para la transacción del servidor simultáneo, el cliente de escucha estándar ya no es necesario para el procesamiento de aplicaciones y es libre de escuchar otra solicitud entrante.
Una vez que se ejecuta el servidor simultáneo, lee el mensaje inicial de transacción (TIM) enviado por el cliente de escucha estándar.
El mensaje TIM describe el entorno TCP/IP en el que se ejecuta el servidor y contiene la información de socket TCP/IP que usa el servidor simultáneo para comunicarse con el transporte TCP de COMTI y el encabezado del mensaje de cliente que usa el servidor simultáneo para personalizar su comportamiento de ejecución. El encabezado contiene el nombre del programa de servidor al que se va a vincular.
El servidor simultáneo hace lo siguiente:
Da formato a la respuesta TRM estándar o personalizada.
Envía una respuesta TRM al transporte TCP del integrador de transacciones para informarle de que ahora puede enviar los datos de solicitud de la aplicación.
Emite una recepción y espera los datos de solicitud de la aplicación.
El envío de la respuesta TRM completa la primera parte de la secuencia de intercambio del cliente de escucha estándar.
El entorno de ejecución evalúa el TRM y pasa los datos al programa del servidor simultáneo a través de CICS COMMAREA mediante una llamada estándar al vínculo de EXEC CICS. El tiempo de ejecución de TI también envía un socket (es decir, 2 bytes) apagado y, a continuación, espera los datos de respuesta.
Una vez que el servidor simultáneo recibe los datos de solicitud de aplicación, se vincula al programa de aplicación de servicio que se especificó en el encabezado de mensaje del cliente de los TRM. El comando CICS EXEC CICS LINK se usa para iniciar la aplicación de servidor real. El comando Link pasa los datos de aplicación recibidos del transporte TCP de COMTI al área común de memoria (COMMAREA) y realiza la lógica de negocios en los datos. Toda la lógica de negocios se define en el programa de transacción del servidor.
Una vez que el programa de aplicación de servidor ha terminado de procesar la solicitud y formular la respuesta, emite un comando EXEC CICS RETURN para devolver el control al programa de servidor simultáneo (mscmtics.cbl). El programa de transacción del servidor prepara los datos de respuesta junto con un TRM estándar o personalizado, acepta los datos de COMMAREA y, luego, envía los datos de respuesta de la aplicación al transporte TCP del integrador de transacciones a través de COMMAREA. La terminación del procesamiento de los datos de la aplicación indica el final de la segunda secuencia de intercambio.
El servidor simultáneo cierra el socket.
El proxy de Automation del integrador de transacciones recibe los datos de respuesta y procesa la respuesta. El proxy de Automation de TI realiza las siguientes acciones:
Recibe el mensaje del componente de transporte TCP.
Lee el búfer de mensajes.
Si la aplicación es un componente COM+, el proxy de Automation de TI realiza las siguientes acciones:
Asigna los tipos de datos COBOL a los datos de automatización.
Llama a las rutinas de conversión para convertir los tipos COBOL de sistema central en los datos de la aplicación.
Si la aplicación es un ensamblado de .NET Framework, el proxy de Automation del integrador de transacciones realiza las siguientes acciones:
Asigna los tipos de datos COBOL a los tipos de datos de .NET Framework.
Llama a las rutinas de conversión para convertir los tipos COBOL del equipo central en los datos de la aplicación.
El runtime de TI devuelve los datos convertidos a la aplicación COM o .NET Framework que invocó el método.
Para implementar este modelo, debe proporcionar a TI una dirección IP, un número de puerto y un nombre de programa CICS para ejecutar la aplicación pasada por el programa de servidor simultáneo (Mscmtics.cbl). El modelo requiere la instalación, dentro de CICS, del agente de escucha predeterminado proporcionado por IBM (EZACIC02). El agente de escucha predeterminado de IBM de CICS usa la configuración predeterminada proporcionada por IBM.
Host Integration Server incluye código de ejemplo que muestra cómo implementar el modelo de programación tcp TRM Link. El código de ejemplo se encuentra en el \directorio de instalación\SDK\Samples\AppInt. Inicie Microsoft Visual Studio, abra el tutorial que prefiera y siga las instrucciones del archivo Léame.
Para información sobre cómo configurar el sistema central y escribir aplicaciones de servidor para TCP/IP, consulte TCP/IP V3R2 para MVS: Guía de interfaz de sockets TCP/IP de CICS (documento de IBM SC31-7131).
Consulte también
Componentes del Integrador de transacciones
Mensajes de solicitud de transacciones
Convertir tipos de datos de Automation a z/OS COBOL]
Conversión de tipos de datos de COBOL de z/OS a Automation
Componentes de CICS
Selección del modelo de programación adecuado
Modelos de programación