使用临时存储池
临时存储器是主 CICS® 设施,用于存储必须可用于多个事务的数据。
临时存储器中的数据项保留在队列中,这些队列的名称由存储数据的程序分配。 可以将包含多个项的临时存储器队列视为其记录可按顺序或按项号直接寻址的小数据集。 如果队列仅包含单个项,那么可以将其视为指定的便笺本区域。
临时存储器可以是 CICS 区域中的主存储器, VSAM 数据集中的辅助存储器或 z/OS® 耦合设施中的共享临时存储池。 在非并行综合系统环境中,临时存储器队列定义为不可恢复或可恢复。 不可恢复的队列通常存在于 CICS 区域的虚拟存储器中,这提供比必须对 DASD 执行 I/O 操作更好的性能。 但是,如果 CICS 区域变为不活动状态,那么队列上的数据将丢失。 可恢复的临时存储器队列必须位于 VSAM 数据集中,因此对它们的访问速度较慢。 此外,由于必须记录对队列的所有更新,因此使用可恢复队列的开销较高。
如果必须将临时存储器数据从一个区域中的任务传递到 MRO 方案中的另一个区域中的任务,那么可以定义专用 CICS 区域 (队列拥有区域或 QOR) ,并将其指定给要使用该区域中的队列的每个 CICS 应用程序拥有区域 (AOR)。 当 QOR 除去在临时存储器队列中共享数据的两个事务之间的亲缘关系时,性能不如在事务所在的 AOR 中保留的队列。 与 AOR 和 QOR 之间的通信相关的功能传输会产生额外的开销,而 QOR 则是一个单点故障。 如果 QOR 失败,那么它包含的队列中的所有数据都将丢失。
在 AOR 中运行的 CICS 事务通过支持临时存储器队列的指定池的临时存储器服务器地址空间访问临时存储器结构中的数据。 必须在综合系统中的每个 z/OS 映像中为 CF 中定义的每个池设置一个临时存储服务器地址空间。 对指定池的临时存储服务器的跨内存调用将执行所有临时存储池访问。 服务器将要支持的临时存储池的名称在临时存储服务器地址空间 JCL 中的 POOLNAME 参数上指定。 您还必须指定要为服务器地址空间分配的缓冲区数。 为避免缓冲区等待的风险并减少 CF 访问次数,您可以将每个 CICS 区域可连接到服务器的缓冲区数从缺省值 10 个增加到最小缓冲区数。 提供合理数量的缓冲区可将最近使用的队列索引条目保留在存储器中。 当 READ 或 WRITE 请求完成时,队列索引信息将保留在缓冲区中。 如果队列索引条目的当前版本在读取队列项时处于存储器中,那么请求仅需要一个 CF 访问权而不是两个 CF 访问权。
有关临时存储器的更多信息,请参阅 临时存储器的编程注意事项。 有关临时存储的使用和避免交易关联的注意事项,请参阅编程技术和关联性。 有关定义共享临时存储结构的更多信息,请参阅为临时存储数据共享定义临时存储池。