CICS - Almacenamiento temporal
Hay diferentes blocs de notas disponibles en CICS para guardar datos o transferir los datos entre transacciones. Hay cinco áreas de almacenamiento que proporciona CICS, que analizaremos en este módulo.
COMMAREA
COMMAREA se comporta como un bloc de notas que se puede utilizar para pasar datos de un programa a otro programa, ya sea dentro de la misma transacción o de diferentes transacciones. Debe definirse en la SECCIÓN LINKAGE usando el nombre DFHCOMMAREA.
Área de trabajo común
Cualquier transacción en la región CICS puede acceder al área de trabajo común y, por lo tanto, todas las transacciones del sistema que decidan utilizarla deben acordar el formato y el uso de la misma. Solo hay un CWA en toda la región CICS.
Área de trabajo de transacciones
El área de trabajo de transacción se utiliza para pasar datos entre los programas de aplicación que se ejecutan en la misma transacción. TWA existe solo mientras dura la transacción. Su tamaño se define en la tabla de control del programa.
Cola de almacenamiento temporal
La cola de almacenamiento temporal (TSQ) es una función proporcionada por el Programa de control de almacenamiento temporal (TSP).
Una TSQ es una cola de registros que pueden ser creados, leídos y eliminados por diferentes tareas o programas en la misma región CICS.
Se utiliza un identificador de cola para identificar TSQ.
Un registro dentro de una TSQ se identifica por la posición relativa conocida como número de artículo.
Los registros en TSQ permanecen accesibles hasta que se elimine explícitamente toda la TSQ.
Los registros en TSQ se pueden leer de forma secuencial o directa.
Las TSQ se pueden escribir en el almacenamiento principal o en el almacenamiento auxiliar en el DASD.
WRITEQ TS
Este comando se utiliza para agregar elementos a una TSQ existente. Además, podemos crear una nueva TSQ usando este comando. A continuación se muestra la sintaxis del comando WRITEQ TS:
Sintaxis
EXEC CICS WRITEQ TS
QUEUE ('queue-name')
FROM (queue-record)
[LENGTH (queue-record-length)]
[ITEM (item-number)]
[REWRITE]
[MAIN /AUXILIARY]
END-EXEC.
A continuación se muestran los detalles de los parámetros utilizados en el comando WRITEQ TS:
La COLA se identifica por el nombre que se menciona en este parámetro.
Las opciones FROM y LENGTH se utilizan para especificar el registro que se va a escribir en la cola y su longitud.
Si se especifica la opción ARTÍCULO, CICS asigna un número de artículo al registro en la cola y establece el área de datos proporcionada en esa opción en el número de artículo. Si el registro inicia una nueva cola, el número de artículo asignado es 1 y los números de artículo siguientes siguen secuencialmente.
La opción REWRITE se usa para actualizar un registro que ya está presente en la cola.
La opción MAIN / AUXILIARY se usa para almacenar registros en el almacenamiento principal o auxiliar. El valor predeterminado es AUXILIAR.
READQ TS
Este comando se utiliza para leer la cola de almacenamiento temporal. A continuación se muestra la sintaxis de READQ TS:
Sintaxis
EXEC CICS READQ TS
QUEUE ('queue-name')
INTO (queue-record)
[LENGTH (queue-record-length)]
[ITEM (item-number)]
[NEXT]
END-EXEC.
DELETEQ TS
Este comando se utiliza para eliminar la cola de almacenamiento temporal. A continuación se muestra la sintaxis de DELETEQ TS:
Sintaxis
EXEC CICS DELETEQ TS
QUEUE ('queue-name')
END-EXEC.
Cola de datos transitorios
La cola de datos transitorios es de naturaleza transitoria, ya que se puede crear y eliminar rápidamente. Solo permite acceso secuencial.
El contenido de la cola se puede leer solo una vez, ya que se destruye una vez que se realiza una lectura y de ahí el nombre Transitorio.
No se puede actualizar.
Requiere una entrada en DCT.
WRITEQ TD
Este comando se usa para escribir colas de datos transitorios y siempre se escriben en un archivo. A continuación se muestra la sintaxis del comando WRITEQ TD:
Sintaxis
EXEC CICS WRITEQ TD
QUEUE ('queue-name')
FROM (queue-record)
[LENGTH (queue-record-length)]
END-EXEC.
READQ TD
Este comando se utiliza para leer la cola de datos transitorios. A continuación se muestra la sintaxis de READQ TD:
Sintaxis
EXEC CICS READQ TD
QUEUE ('queue-name')
INTO (queue-record)
[LENGTH (queue-record-length)]
END-EXEC.
DELETEQ TD
Este comando se utiliza para eliminar la cola de datos transitorios. A continuación se muestra la sintaxis de DELETEQ TD:
Sintaxis
EXEC CICS DELETEQ TD
QUEUE ('queue-name')
END-EXEC.