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 | CICS 执行初始化(冷启动或初始启动)的区域 | 只读 |
| 2 | CICS 运行一个或多个 CEDA、CEDB 或 CEDC 交易的地区 | 读/写或只读(在 CSDACC 参数中指定) |
| 3 | 批量区域运行实用程序 DFHCSDUP | 读/写或只读,取决于 PARM 参数 |
| 4 | CICS 执行紧急重启的地区,需要 CSD 文件备份 | 读/写 |
- 如果使用相同 CSD 的 CICS 区域正在运行 CEDA、CEDB 或 CEDC 事务之一,则不能在批处理区域中以读/写模式运行 DFHCSDUP。 (当访问 CSD 的 CEDx 事务位于 CSD 被定义为只读的一个(或多个)区域时,情况例外)
- 如果 DFHCSDUP 实用程序正在读/写模式下访问要使用的 CSD,则不会运行任何 CEDx 事务。 (如果交易是在 CSD 被定义为只读的区域内运行,则此限制不适用)
- CICS 如果任何 RDO 事务在另一个 CICS 区域运行,而该区域的 CSD 已定义为读写访问,则任何 CEDx 事务都不能在该区域运行。
CICS 区域从初始或冷启动开始,在初始化过程中仅打开 CSD 供读取访问,与 CSDACC 操作数无关。 这样,即使其他区域的用户或 DFHCSDUP 实用程序同时在更新 CSD,也能初始化 CICS 区域。 安装组列表后, CICS 会让 CSD 处于关闭状态。
在热启动或紧急启动时,如果 CSDRECOV=NONE 被指定为系统初始化参数,则在 CICS 初始化期间根本不会打开 CSD。 但是,如果指定了 CSDRECOV=ALL ,且 CSD 上的退 出处理处于待定状态,则在紧急启动时,将在 CICS 初始化期间打开 CSD。