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.