我需要写入大型机中的非VSAM数据集。我知道我们需要使用ZFile库来完成它,我发现了如何做到here
我正在zOS上的WebSphere Liberty中运行我的Java批处理作业。如何指定数据集?我可以直接给DataSet这样的名字吗?
dsnFile = new ZFile("X.Y.Z", "wb,type=record,noseek");
我可以使用Java的文件编写器将其写入服务器本身的文本文件,但我不知道如何访问mvs数据集。
我对zOS和大型机的世界相对较新。
答案 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()。