JSR 352:如何从Java Batch程序写入MVS数据集?

时间:2016-06-28 14:10:34

标签: file-io jsr352 java-batch mvs

我需要写入大型机中的非VSAM数据集。我知道我们需要使用ZFile库来完成它,我发现了如何做到here

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

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

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

我对zOS和大型机的世界相对较新。

1 个答案:

答案 0 :(得分:2)

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

你有没有试过像:

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

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

您还可以在此doctorbatch.io repo中找到一些有用的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()