file-io - JSR 352 : How do you write to a MVS Dataset from a Java Batch program?

标签 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 和大型机的世界还比较陌生。

最佳答案

听起来您可能会更普遍地询问如何在 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()

关于file-io - JSR 352 : How do you write to a MVS Dataset from a Java Batch program?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078563/

相关文章:

java - Java Batch (JSR 352) 是 SE JDK 的一部分吗? (BatchRuntime 对于 Joboperator 返回 NULL)

jsr352 - 批处理作业定义: How to run a dynamically-calculated number of partitions?

java - 如何一次更新所有电子邮件?

java - JSR 352 : Is it possible to run different partitions of the same step in the same job in Multiple JVMs?

c++ - 如何获取HDF5文件的数据集信息

c++ - 优化功能以将位写入文件

java - 从 java 中的 .txt 读取对象

Java:CSV 文件易于读​​/写

java - 使用 java.batch/jsr 352 的专用批处理作业

jakarta-ee - JSR 352 如何将对象 (java.lang.Object) 存储为作业属性?