CICS 临时存储器:概述
您可以在三个位置为 CICS® 区域设置临时存储器: 主存储器,辅助存储器或 z/OS® 耦合设施中的共享临时存储池。
- 主存储器(main storage)
- 主临时存储器位于 CICS 区域中的 64 位 (高于条形) 存储器中。 使用 TSMAINLIMIT 系统初始化参数来指定可用于临时存储器队列的存储量。
可以在运行应用程序的 CICS 区域中使用本地主存储器,也可以将临时存储器请求交付至远程队列拥有区域 (QOR)。
- 辅助存储器(auxiliary storage)
- 辅助临时存储器位于名为 DFHTEMP 的非索引 VSAM 数据集中。 您在设置此数据集时定义可用空间和任何其他扩展数据块。 在 CICS 区域中,针对 VSAM 缓冲区使用某些 31 位 (高于线) 存储器,以使 VSAM 数据集的控制区间可用。 您可以使用 TS 系统初始化参数来设置缓冲区数。 与主临时存储器一样,辅助临时存储器可以与本地 CICS 区域或远程队列拥有区域相关联。
- z/OS 耦合设施中的共享临时存储池
- 共享临时存储池 (TS 池) 位于由临时存储器数据共享服务器 (TS 服务器) 管理的 z/OS 耦合设施中。 每个池对应于耦合设施中的列表结构。 使用 z/OS中的耦合设施资源管理器 (CFRM) 策略定义实用程序来指定每个临时存储池的大小。 共享临时存储池不使用 CICS 区域中的任何存储器,应用程序直接从本地 CICS 区域访问这些存储池。
当应用程序使用 WRITEQ TS 和 READQ TS 命令来访问临时存储器队列时,请求由 CICS 临时存储器域处理,这将在相应的存储位置中创建临时存储器队列并将数据放入其中。 任何任务都可以使用临时存储器队列的符号名称来检索数据。 CICS 临时存储器域可以同时处理多个请求,但它会对针对同一临时存储器队列发出的请求进行序列化,并且在每个请求的持续时间内会锁定该队列。
您可以使用 TSMODEL 资源定义来设置 CICS 用于创建临时存储器队列的模型。 每个模型都为名称与模型匹配的临时存储器队列指定以下属性:
- 必须存储队列的临时存储器的位置
- 临时存储器是与本地 CICS 区域相关联,还是与远程 CICS 区域相关联,例如,队列拥有区域
- CICS是否自动删除队列 (如果该队列在一段时间内未使用并且未被应用程序删除)
- 队列是否可恢复
表 1 汇总了存储器使用情况以及可以为每个位置中的临时存储器队列选择的功能。
| 临时存储位置 | 存储类型 | 自动删除队列 | 恢复 |
|---|---|---|---|
| 主存储器(main storage) | CICS 区域中的 64 位存储器 | 可用 | 不可用 |
| 辅助存储器(auxiliary storage) | VSAM 数据集,外加 CICS 区域中用于缓冲区的 31 位存储器 | 可用于不可恢复的队列 | 可用 |
| 共享临时存储池 | z/OS 耦合设施 | 可用 | CICS 恢复不可用,但队列是持久队列 (它们不受 CICS 重新启动的影响) |
CICS 还会创建一些临时存储器队列以供自己使用。 这些队列可以位于主临时存储器或辅助临时存储器中。 例如, CICS 将临时存储器用于以下目的:
- 基本映射支持 (BMS) 页面调度和路由
- 消息的高速缓存
- 时间间隔控制
- CICS 执行诊断工具 (EDF)
- 在目标系统不可用时对 MRO , ISC 和 IPIC 进行本地排队
在 CICS 系统中查看临时存储器队列时,名称以以下字符开头的队列是 CICS 队列: ** , $$ , X'FA '到 X'FF' , CEBR 和 DF。