工作方式: SOS 等待功能

如果 CICS® 任务需要新的开放式 TCB ,那么此 CICS 任务的处理取决于 z/OS® 用户区域存储器和 CICS 地址空间中扩展用户区域存储器中的未分配存储器的可用性。 当 z/OS 用户区域存储器或扩展用户区域存储器中发生 "存储空间不足" (SOS) 情况时,缺省情况下,如果任务需要新的开放式 TCB ,那么 CICS 将暂挂任务。 仅使用 CICS 受管存储器的任务 (大多数任务) 不受影响。

缺省情况下,已启用 SOS 等待功能,但您可以选择将其关闭。 有关详细信息,请参阅 设置 CICS SOS 等待功能

CICS 如何处理需要新的开放式 TCB 的任务

如果 CICS 任务需要获取新的开放式 TCB ,那么 CICS 首先检查 z/OS 用户区域存储器和扩展用户区域存储器中的未分配存储器,并确定是否已违反一个或多个 SOS 阈值。 SOS 阈值与 CICS z/OS 存储监视器 系统任务使用的阈值相同。 有关 SOS 阈值的详细信息,请参阅 Monitoring unallocated z/OS storage for CICSSetting up for CICS monitoring of unallocated z/OS storage

如果发现 z/OS 用户区域存储器或扩展用户区域存储器存储空间不足,那么 CICS 将暂挂用户任务。 暂挂的任务的等待状态为 MVS_Stor ,并且已添加到 SOS 等待者队列。 当已解决 SOS 条件时,允许该任务继续执行。 可以清除暂挂的任务,并且该任务符合 DTIMEOUT 的条件。

受影响用户任务的性能类监视字段 SMMVSSWT 具有非零值。

CICS 如何处理 SOS 等待者队列中的暂挂任务

CICS 定期恢复 SOS 等待者队列中的最后一个任务,以确定 z/OS 用户区域存储器还是扩展用户区域存储器仍然不足。 如果解决了 SOS 条件,那么将从 SOS 等待者队列中除去该任务并允许其继续。 如果 SOS 情况仍然存在,那么将再次暂挂该任务。

此过程将继续,直到 SOS 等待者队列中没有剩余任务为止。

如果已清除暂挂的任务或由于 DTIMEOUT 而超时,那么也会从 SOS 等待者队列中除去这些任务。

当由于 z/OS 用户区域存储器或扩展用户区域存储器中的 SOS 条件而将第一个任务添加到等待者队列时,如果 CICS z/OS 存储器监视器 系统任务尚未发出 SOS 消息,那么将发出 SOS 消息。

注意事项

由于 z/OS 用户区域存储器或扩展用户区域存储器中的 SOS 条件而暂挂任务可防止 CICS 地址空间耗尽 z/OS 存储器。 但是,此方法也可能导致问题; 例如,暂挂的任务可能正在挂起入队,这将阻止其他任务完成,这将导致工作排队。

如果不需要此行为,那么可以遵循 设置 CICS SOS 等待功能中的指示信息来禁用 SOS 等待功能。