2

我需要写入大型机中的非 VSAM 数据集。我知道我们需要使用 ZFile 库来做到这一点,我在这里找到了如何做到这一点

我正在 zOS 上的 WebSphere Liberty 中运行我的 Java 批处理作业。如何指定数据集?我可以直接给DataSet起这样的名字吗?

dsnFile = new ZFile("X.Y.Z", "wb,type=record,noseek");

我可以使用 Java 的 File Writers 将它写入服务器本身的文本文件,但我不知道如何访问 mvs 数据集。

我对 zOS 和大型机的世界还比较陌生。

4

1 回答 1

2

听起来您可能会更一般地询问如何在 z/OS 上的 WebSphere Liberty 上使用ZFile API。

您是否尝试过类似的方法:

    String pdsName = ZFile.getSlashSlashQuotedDSN("X.Y.Z");
    ZFile zfile = new ZFile(pdsName , ...options...)

就特定于批处理的用例而言,您可能显然必须区分写入在原始执行时首次创建的新文件,而不是在重新启动时追加到已经存在的文件。

您还可以在此doctorbatch.io 存储库中找到一些有用的 snipopets ,以及您发布的原始链接。

作为参考,我将从ZFile Javadoc复制/粘贴:

ZFile dd = new ZFile("//DD:MYDD", "r");

Opens the DD namee MYDD for reading

ZFile dsn = new ZFile("//'SYS1.HELP(ACCOUNT)'", "rt");

Opens the member ACCOUNT from the PDS SYS1.HELP for reading text records

ZFile dsn = new ZFile("//SEQ", "wb,type=record,recfm=fb,lrecl=80,noseek");

Opens the data set {MVS_USER}.SEQ for sequential binary writing. Note that ",noseek" should be specified with "type=record" if access is sequential, since performance is greatly improved. 

最后一点,另外几个有用的ZFile辅助方法是:bpxwdyn()getFullyQualifiedDSN()

于 2016-06-28T16:38:16.087 回答