我需要写入大型机中的非vsam数据集。我知道我们需要使用ZFile库来做到这一点,我在这里找到了如何做到这一点
我正在zOS上的WebSphere Liberty上运行Java批处理作业。如何指定数据集?我可以直接给数据集一个这样的名字吗?
dsnFile = new ZFile("X.Y.Z", "wb,type=record,noseek");
我能够使用Java的文件编写器将其写入服务器本身的文本文件,但我不知道如何访问mvs数据集。
我对zOS和大型机的世界比较陌生。
听起来您可能会更普遍地询问如何在z/OS上使用WebSphere Liberty上的ZFile API。
你试过这样做吗:
String pdsName = ZFile.getSlashSlashQuotedDSN("X.Y.Z");
ZFile zfile = new ZFile(pdsName , ...options...)
就批处理特定的用例而言,您可能显然必须区分在原始执行时写入第一次创建的新文件,与在重新启动时追加到已经存在的文件。
您还可以在此doctorbatch中找到一些有用的snippet。IO repo,以及您发布的原始链接。
作为参考,我将从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 helper方法是:bpxwdyn()和getFullyQualifiedDSN().