1

我正在尝试访问 MVS 中的数据集和成员元数据,但找不到获取和设置修改时间的机制(好的,以及 RACF 规则,但现在这并不重要)。我们(许多)目标之一是在部署文件时将 USS 中的时间戳与 MVS 中的类似值相协调。

显而易见的机制是使用 TSO 的 LISTCAT,但它只显示创建 year.day(所以今天是 19.294)。当我必须扫描数千个文件以进行最近的修改时,速度非常慢。我在 C 环境中工作,它能够嵌入 360 汇编指令。z/OS C/C++ 库标准调用,如 fstat/stat 不支持 MVS 文件或 PDS 成员。

PDS 实用程序文档中有提示,ISPF 有时会在 PDS 目录的用户区域中设置修改时间,并且提示使用了 DSCB 格式 1,但我们无法验证这一点,并且该格式的字段定义确实如此不描述修改时间戳。

4

1 回答 1

1

由于 PDS 成员是单个数据集的一部分,因此您得到混合指示的原因是数据集中没有任何内容可以明确记录这样的时间戳。

默认情况下,PDS 没有针对每个成员的此类字段。ISPF 实用程序利用用户数据字段,它是目录的一部分(目录条目具有基于每个成员的信息),为 PDS 成员记录此信息,当且仅当使用 ISPF 或 ISPF API 进行编辑时才可编辑/可编辑(根据 LMMSTATS)。

  • 请注意,ISPF 统计信息不是神圣不可侵犯的并且占用目录空间,它们可以被删除,例如,使用 ISPF 选项 3.5(修复 D 或 E37 异常终止的常见尝试)。

如果 SMF 类型 42 记录被捕获/记录,那么这可能更具指示性,但仍然不是包罗万象,因为它仅在发布 STOW(更新目录)时(显式或隐式)记录此类信息。大多数更新、创建或删除成员的程序都应该发出 STOW。但是,某些实用程序可能不会。

您可能对子类型感兴趣:-

20、21、24 和 25(22 和 23 与 DFSMS 相关)。

于 2019-11-17T06:15:21.157 回答