📜  CICS-临时存储

📅  最后修改于: 2020-11-22 16:38:01             🧑  作者: Mango


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

逗号

COMMAREA的行为就像便笺簿,可用于将数据从一个程序传递到另一个程序,无论是在同一事务中还是在不同事务中。应该在链接部分中使用DFHCOMMAREA名称进行定义。

共同工作区

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

交易工作区

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

临时存储队列

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

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

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

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

  • TSQ中的记录将保持可访问状态,直到整个TSQ被明确删除为止。

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

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

写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命令中使用的参数的详细信息-

  • 队列由此参数中提到的名称标识。

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

  • 如果指定了ITEM选项,则CICS将项目编号分配给队列中的记录,并将该选项中提供的数据区域设置为项目编号。如果记录开始一个新队列,则分配的项目编号为1,随后的项目编号依次进行。

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

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

READQ TS

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

句法

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

删除TS

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

句法

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

瞬态数据队列

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

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

  • 无法更新。

  • 它需要在DCT中输入。

WRITEQ TD

此命令用于写入瞬态数据队列,并且始终将它们写入文件。以下是WRITEQ TD命令的语法-

句法

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

READQ TD

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

句法

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

DELETEQ TD

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

句法

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