Acerca del ejemplo de conectividad de CICS Transaction Server for z/OS
El ejemplo de conectividad de CICS Transaction Server for z/OS se basa en un escenario
donde el objetivo es recuperar un registro en un recurso de archivo definido en CICS.
El siguiente diagrama muestra la arquitectura de utilizar la conectividad
CICS en un flujo de mensajes.
El ejemplo de conectividad de CICS Transaction Server for z/OS
muestra las siguientes tareas:
Incorporar el nodo CICSRequest en un flujo de mensajes para
conectar con CICS y ejecutar un programa en la
región de destino
Incorporar datos del mensaje de entrada para que formen parte de la COMMAREA
que se envía y se recibe de CICS
Interpretar los códigos de retorno procedentes de CICS
Manejar las terminaciones anómalas procedentes de CICS
El programa DFH$AXCS de CICS recibe una COMMAREA para abrir, examinar y cerrar un
archivo. DFH$AXCS es un programa que utiliza los datos de ejemplo FILEA que se
proporcionan con CICS. FILEA es un archivo de conjunto de datos de secuencia de claves (KSDS)
que contiene información de cuentas de ejemplo y está indexado mediante un
número de registro de seis caracteres. DFH$AXCS accede a
este archivo y toma los argumentos de entrada de un mandato, un nombre de
recurso de archivo y un identificador de registro. El mandato indica al ejemplo si
debe abrir, examinar, actualizar o cerrar el archivo. El recurso de archivo
hace referencia a una definición de recurso de archivo instalado que se
correlaciona con datos KSDS reales. El número de registro se utiliza como
clave cuando se lee o actualiza el archivo. El ejemplo realiza tres llamadas
a CICS para abrir, examinar un registro y cerrar el archivo.
Mensajes de entrada
Se proporcionan tres mensajes de entrada para ejecutar el ejemplo de
conectividad de CICS Transaction Server for z/OS:
Un mensaje XML para recuperar el registro 111111 de FILEA.
El XML que se recibe cuando se intenta abrir un archivo que no existe:
<?xml version="1.0" encoding="UTF-8"?>
<record>
<stat>File could not be found</stat>
</record>
Si alguno de los nodos CICSRequest del flujo o subflujo de mensajes
experimenta una terminación anómala, se envía un código de terminación anómala
desde el terminal de error del nodo CICSRequest, y se propaga al nodo Compute "Convert abend code to XML". A
continuación, el nodo Compute crea un mensaje XML que contiene el código de terminación
anómala CICS, donde 1234 es el código de terminación anómala CICS:
El siguiente diagrama muestra el flujo de mensajes de ejemplo de
conectividad principal de CICS Transaction Server for z/OS.
Tipo de nodo
Nombre de nodo
MQInput
CICS_IN
Compute
Set Open Command, Convert FILE not found to XML, Convert
FILEA record to XML, Convert abend code to XML
CICSRequest
Open FILEA
Filter
Check FILEA opened
Subflow
CICSConnectivityProcessFILEA
MQOutput
CICS_OUT, CICS_ERROR
El siguiente diagrama muestra el subflujo de mensajes del ejemplo de conectividad de
CICS Transaction Server for z/OS denominado CICSConnectivityProcessFILEA.
Tipo de nodo
Nombre de nodo
Input
Input
Compute
Set Browse Command, Set Close Command
CICSRequest
Browse FILEA, Close FILEA
Output
Output, Error
Para obtener más información sobre los nodos que se utilizan en el ejemplo de
conectividad de CICS Transaction Server for z/OS, consulte
Nodos incorporados en la
documentación de IBM Integration Bus.
Ruta tomada por los mensajes FILEA
Al colocar uno de los mensajes FILEA en la cola de entrada, el mensaje
pasa a través de los nodos. Si ninguna de las colas se ha inhabilitado, el mensaje no puede seguir esta vía de acceso.
La siguiente sección describe la ruta tomada por los mensajes FILEA y la
función de los nodos en el flujo principal de mensajes del ejemplo de
conectividad de CICS Transaction Server for z/OS y en el subflujo de mensajes
CICSConnectivityProcessFILEA:
CICS_IN: El nodo MQInput "CICS_IN" obtiene el mensaje de entrada de la cola de entrada.
Set Open Command: el nodo Compute "Set Open Command" establece el
conjunto, el tipo y el formato de los mensajes a partir de los cuales se creará la
COMMAREA para realizar el envío a CICS. La estructura de la COMMAREA se define en el
archivo de libro de copias dfh$axcs_cpybooks.cpy. El nodo establece el
parámetro abierto requerido por el programa CICS DFH$AXCS,
es decir: AXCS_COMMAND = 1. El nodo también establece
el parámetro AXCS_FILE en el valor
data.file especificado
en el mensaje de entrada de XML. Por último, el nodo almacena el valor de
data.record del mensaje de entrada XML en el entorno para utilizarlo en la siguiente invocación al nodo CICSRequest "Browse FILEA".
Open FILEA: el nodo CICSRequest "Open FILEA" se conecta a CICS y abre el recurso
FILEA. La propiedad CICS server del nodo CICSRequest se establece para utilizar el servicio configurable
CICSConnection, como se describe en
Configuración del ejemplo de conectividad de CICS
Transaction Server for z/OS.
Se establecen las propiedades
Nombre del programa y
Longitud del área de comunicación y la COMMAREA que se
crea en el nodo Compute "Set Open Command" se envía a CICS.
CICS ejecuta el programa DFH$AXCS y se abre FILEA. La estructura de la COMMAREA que se
devuelve a IBM Integration Bus desde CICS es la misma que la COMMAREA saliente, que es:
dfh$axcs_cpybooks.cpy
Check FILEA opened: el nodo Filter "Check FILEA opened" realiza
una comprobación del código de retorno de CICS para asegurarse de que el archivo se ha
abierto correctamente en el sistema host. Si FILEA se ha abierto correctamente, el
mensaje se propaga al subflujo CICSConnectivityProcessFILEA.
Subflujo CICSConnectivityProcessFILEA:
Set Browse Command: El nodo "Set Browse Command" Compute establece el parámetro
browse requerido por el programa CICS DFH$AXCS,
es decir:
AXCS_COMMAND = 2. El nodo "Set Browse Command" Compute
también recupera el valor de data.record del entorno local y establece
el parámetro AXCS_RIFLD para informar al programa DFH$AXCS
qué registro recuperar de FILEA.
Browse FILEA: "Browse FILEA" es un nodo CICSRequest que indica a CICS
que navegue en FILEA y que recupere el registro.
Set Close Command: el nodo Compute "Close Command" establece el
parámetro close, que es:
AXCS_COMMAND = 3.
Close FILEA: el nodo CICSRequest final, "Close FILEA", envía la COMMAREA
a CICS y FILEA se cierra.
Convert FILEA record to XML: a través de este flujo de mensajes, el
mensaje principal que se propaga a través de los nodos es la COMMAREA que
se crea mediante el nodo Compute "Set Open Command", que se pasa desde y hacia
CICS. El elemento principal de interés
ahora son los datos recuperados del nodo CICSRequest "Browse FILEA".
El nodo Compute "Convert FILEA record to XML" crea un mensaje XML que contiene la
corriente de bytes transformados del registro FILEA y convierte el mensaje en
un formato XML, como se muestra en la sección Mensajes de salida.
CICS_OUT: el nodo MQOutput "CICS_OUT" coloca el mensaje en la cola de
salida CICS_OUT.
Convert abend code to XML: el nodo Compute "Convert abend code to XML" maneja
las situaciones de error. Cada uno de los nodos CICSRequest del flujo y
subflujo de mensajes tiene sus terminales de Error conectados a este
nodo Compute. El nodo Compute crea un mensaje XML que contiene el código
de terminación anómala de CICS, como se muestra en la sección Mensajes de salida.
CICS_ERROR: el nodo MQOutput "CICS_ERROR" coloca el mensaje en la cola de
salida CICS_ERROR.
Ruta tomada por el mensaje FILEB
La ruta seguida por el mensaje FILEB es parecida a la que toman los mensajes FILEA, pero con las
siguientes diferencias:
Open FILEA: el nodo CICSRequest "Open FILEA" intenta abrir FILEB, que es
un archivo inexistente en la región CICS del host.
Check FILEA opened: el nodo Filter "Check FILEA opened" determina el código de retorno
12 y el mensaje se propaga directamente al nodo Compute
"Convert FILE not found to XML".
Convert FILE not found to XML: dado que no existe ningún registro
recuperado que el nodo Compute "Convert FILE not found to XML" pueda
transformar, el nodo Compute "Convert FILE not
found to XML" crea un mensaje informativo.
Este ejemplo demuestra cómo leer un mensaje de entrada, conectarse a
CICS y recuperar un registro de FILEA. Los datos de registro
se transforman en XML y se envían a una cola. Si no se encuentra el archivo, se
crea un mensaje informativo.