CICS - 临时存储


CICS 中有不同的暂存器可用于保存数据或在事务之间传输数据。CICS 提供了五个存储区域,我们将在本模块中讨论它们。

通讯区

COMMAREA 的Behave就像一个暂存器,可用于将数据从一个程序传递到另一个程序,无论是在同一事务内还是来自不同事务。应使用 DFHCOMMAREA 名称在 LINKAGE SECTION 中定义它。

公共工作区

CICS 区域中的任何事务都可以访问公共工作区,因此它的格式和使用必须得到系统中决定使用它的所有事务的同意。整个 CICS 区域只有一个 CWA。

交易工作区

事务工作区用于在同一事务中执行的应用程序之间传递数据。TWA 仅在交易期间存在。其大小在程序控制表中定义。

临时存储队列

临时存储队列 (TSQ) 是临时存储控制程序 (TSP) 提供的一项功能。

  • TSQ 是一个记录队列,可以由同一 CICS 区域中的不同任务或程序创建、读取和删除。

  • 队列标识符用于标识 TSQ。

  • TSQ 中的记录由称为项目编号的相对位置来标识。

  • TSQ 中的记录仍然可以访问,直到整个 TSQ 被显式删除。

  • TSQ中的记录可以顺序读取或直接读取。

  • TSQ可以被写入DASD中的主存储器或辅助存储器中。

写Q TS

此命令用于将项目添加到现有 TSQ。另外,我们可以使用此命令创建一个新的 TSQ。以下是 WRITEQ TS 命令的语法 -

句法

EXEC CICS WRITEQ TS
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [REWRITE]
   [MAIN /AUXILIARY]
END-EXEC.

以下是 WRITEQ TS 命令中使用的参数的详细信息 -

  • QUEUE 通过此参数中提到的名称来标识。

  • FROM 和 LENGTH 选项用于指定要写入队列的记录及其长度。

  • 如果指定了 ITEM 选项,CICS 将为队列中的记录分配一个项目编号,并将该选项中提供的数据区域设置为该项目编号。如果记录启动一个新队列,则分配的项目编号为 1,后续项目编号将按顺序排列。

  • REWRITE 选项用于更新队列中已存在的记录。

  • MAIN/AUXILIARY 选项用于将记录存储在主存储器或辅助存储器中。默认为辅助。

读取Q TS

该命令用于读取临时存储队列。以下是 READQ TS 的语法 -

句法

EXEC CICS READQ TS
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [NEXT]
END-EXEC.

删除Q TS

该命令用于删除临时存储队列。以下是 DELETEQ TS 的语法 -

句法

EXEC CICS DELETEQ TS
   QUEUE ('queue-name')
END-EXEC.

瞬态数据队列

瞬态数据队列本质上是瞬态的,因为它可以快速创建和删除。它只允许顺序访问。

  • 队列的内容只能读取一次,因为一旦执行读取,队列的内容就会被销毁,因此被称为 Transient。

  • 它无法更新。

  • 它需要 DCT 条目。

写入TD

该命令用于写入瞬态数据队列,它们总是写入文件。以下是 WRITEQ TD 命令的语法 -

句法

EXEC CICS WRITEQ TD
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

读Q TD

该命令用于读取瞬态数据队列。以下是 READQ TD 的语法 -

句法

EXEC CICS READQ TD
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

德莱泰克 TD

该命令用于删除Transient数据队列。以下是 DELETEQ TD 的语法 -

句法

EXEC CICS DELETEQ TD
   QUEUE ('queue-name')
END-EXEC.