访问 ZFile (JZOS) 的统计信息/成员信息
Posted
技术标签:
【中文标题】访问 ZFile (JZOS) 的统计信息/成员信息【英文标题】:Accessing Statistics/MemberInfo of ZFile (JZOS) 【发布时间】:2018-03-19 18:35:45 【问题描述】:我正在使用 IBM JZOS API 访问 PDS 成员,现在我需要一些有关成员的信息。有 PdsDirectory.MemberInfo.Statistics 类,这样我就可以创建一个 PdsDirectory,对其进行迭代并获取每个成员的统计信息(例如修改日期、上次编辑用户...),如下所示:
PdsDirectory dir = new PdsDirectory(args[0]);
for (Iterator iter = dir.iterator(); iter.hasNext(); )
PdsDirectory.MemberInfo info = (PdsDirectory.MemberInfo)iter.next();
System.out.println(info);
但我只需要一个文件的这些统计信息。有没有办法
ZFile zFile = new ZFile("//DD:INPUT", "rb,type=record,noseek");
或创建阅读器来访问这些信息?或者是创建目录并找到我需要的文件的唯一方法?
【问题讨论】:
【参考方案1】:您可以从目录中获取数据集的唯一信息。您可以使用 JZOS CatalogSearch 类从 Java 中执行此操作。 github上有sample。
PDS 成员统计信息通常仅在您使用 ISPF 编辑成员时出现。 ISPF 将统计信息存储在 PDS 目录用户数据字段中。任何应用程序都可以根据需要使用此字段,但通常仅由 ISPF 使用。目录中没有这样的统计数据。没有最后编辑的用户 ID 或记录计数等。有创建数据、最后参考日期和许多其他有用的元数据。你可能找不到你要找的东西,但大部分有趣的东西都在 Format 1 DSCB 中。
【讨论】:
我想查看的所有成员都使用 ISPF 进行了编辑,因此通过 PdsDirectory 代码示例,我可以获得所需的所有信息。但在我的情况下,我有一个成员名称列表,我想检查它们是否存在于 PDS 目录中,如果存在,我需要上次更改它们的时间和人员的信息。我现在能看到的唯一可能的方法是为我的待检查列表中的每个元素遍历整个目录并比较名称。但这对我来说听起来效率很低!但是使用 CatalogSearch 我无法获得那些特定的元信息? 如果您正在寻找一种可靠的方法来审核何时打开数据集,那么您应该调查SMF 14/15 记录,它可以为您提供所需的一切。 IMO,依靠 ISPF 统计数据是不可靠的。任何具有 UPDATE 权限的用户都可以使用 ISPF 3.5 重置 ISPF 成员统计信息。 还有RACF Audit SMF 80记录。以上是关于访问 ZFile (JZOS) 的统计信息/成员信息的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 中模拟/测试 Java 程序的大型机文件 I/O (JZOS)?