CICS 区域内以及跨 CICS 或批处理区域(非 RLS)的多个 CSD 用户

如果为 CICS® 系统定义数据集 (CSD) 指定了读/写访问权限,则 CICS 区域内的所有 CEDA 用户都可以执行读写功能。 CICS 文件控制使用 CSDACC 系统初始化参数中指定的属性来管理区域内多个用户的并发访问。 有四类活动需要访问 CICS 系统定义数据集(CSD)。

CICS 区域中的多个 CSD 用户(非 RLS)

CICS 通过 CSD 上的一系列内部锁定来保护各个资源定义免受并发更新的影响。 CICS 在组级别应用这些锁定。 当 CICS 正在执行用于更新组中任何元素的命令时,它使用内部锁定来阻止区域中的其他 RDO 事务更新同一组。 当更新命令完成执行时, CICS 将除去锁定记录。 列表上的操作也以这种方式受到保护。

可针对 CSD 处理的并发请求数由 CSDSTRNO 系统初始化参数定义。 每个 CEDA(或 CEDB 或 CEDC)用户需要两个字符串,因此在计算 CSDSTRNO 值时,首先要估算可能需要同时访问 CSD 的用户数量,然后将该数字乘以 2。

如果 CSDSTRNO 系统初始化参数值太小,无法满足并发请求对 CSD 的瞬时需求,CEDA 就会发出诊断信息。 如果冲突已消失,那么后续重新发出命令的尝试将成功。 如果继续发生冲突,请增大 CSDSTRNO 值。

一个 CSD 跨 CICS 或批处理区域(非 RLS)的多个用户

使用 CSD 的四种情况下所需的接入类型如表 1 所示。

表 1. CSD 访问
  活动类型 访问权
1 CICS 执行初始化(冷启动或初始启动)的区域 只读
2 CICS 运行一个或多个 CEDA、CEDB 或 CEDC 交易的地区 读/写或只读(在 CSDACC 参数中指定)
3 批量区域运行实用程序 DFHCSDUP 读/写或只读,取决于 PARM 参数
4 CICS 执行紧急重启的地区,需要 CSD 文件备份 读/写
在同时尝试表 1 所列活动时,请注意以下限制:
  1. 如果使用相同 CSD 的 CICS 区域正在运行 CEDA、CEDB 或 CEDC 事务之一,则不能在批处理区域中以读/写模式运行 DFHCSDUP。 (当访问 CSD 的 CEDx 事务位于 CSD 被定义为只读的一个(或多个)区域时,情况例外)
  2. 如果 DFHCSDUP 实用程序正在读/写模式下访问要使用的 CSD,则不会运行任何 CEDx 事务。 (如果交易是在 CSD 被定义为只读的区域内运行,则此限制不适用)
  3. CICS 如果任何 RDO 事务在另一个 CICS 区域运行,而该区域的 CSD 已定义为读写访问,则任何 CEDx 事务都不能在该区域运行。

CICS 区域从初始或冷启动开始,在初始化过程中仅打开 CSD 供读取访问,与 CSDACC 操作数无关。 这样,即使其他区域的用户或 DFHCSDUP 实用程序同时在更新 CSD,也能初始化 CICS 区域。 安装组列表后, CICS 会让 CSD 处于关闭状态。

在热启动或紧急启动时,如果 CSDRECOV=NONE 被指定为系统初始化参数,则在 CICS 初始化期间根本不会打开 CSD。 但是,如果指定了 CSDRECOV=ALL ,且 CSD 上的退 出处理处于待定状态,则在紧急启动时,将在 CICS 初始化期间打开 CSD。