什么可以防止切换到非 RLS 访问方式?

如果有任何 ACB 以 RLS 访问方式打开,那么无法以非 RLS 访问方式打开数据集。

要从 RLS 切换到非 RLS 访问方式,请首先确保关闭针对数据集打开的所有文件。 您可以使用停顿函数来实现此目的。 如 停顿 RLS 数据集中所述, VSAM RLS 停顿机制会导致综合系统中的每个 CICS 区域关闭针对指定数据集打开的任何 RLS ACB。 在停顿机制下关闭后,只能以非 RLS 方式打开数据集。 要重新启用要以 RLS 方式重新打开的停顿数据集,必须关闭所有打开的非 RLS ACB ,然后必须取消停顿数据集。

停顿机制无法通知以 RLS 访问方式打开数据集的批处理程序有关停顿请求的信息。 如果您有此类程序,请使用访问方法服务 SHCDS LIST 子命令来检查是否有任何非CICS 作业针对数据集以 RLS 方式打开了 ACB。 有关 SHCDS LIST 子命令的信息,请参阅 z/OS DFSMS Access Method Services Commands

停顿数据集将在 ICF 目录中设置停顿标志,以便只能以非 RLS 方式打开数据集。 这种使数据集可用于批处理程序而不必关闭所有 CICS 区域的方法特别适用于 Parallel Sysplex ® 环境。 请注意,如果关闭 CICS 区域,那么在未指定关闭事务时最好避免立即关闭,因为这可能会导致保留大量锁定。 关闭事务可以使您执行快速但受控的关闭。

即使数据集已停顿,如果 SMSVSAM 持有针对数据集的保留锁定,那么仍无法以非 RLS 访问方式打开该数据集以进行更新。 这是因为需要锁定以保持数据完整性: 它们保护正在等待落实或回退的更改。 即使存在保留的锁定,也可以在非 RLS 方式下打开数据集以进行输入 (只读) ,因为阅读器不会破坏此类锁定所保留的数据完整性。 请注意,当您在批处理作业中打开数据集时,不能有任何活动锁定,因为当 ACB 关闭时,任何活动锁定都会自动转换为保留锁定。

本主题中关于切换到非 RLS 访问方式的其余部分描述了在需要切换到非 RLS 方式并且被保留锁定阻止时可用的选项。