如何检查 Unix 系统服务文件是否存在
我在 JZOS 下的 IBM 大型机上运行批处理 Java。该作业根据在数据库中找到的内容创建 0 - 6 个“.txt”输出。然后,我需要将这些文件从 Unix 转换为 MVS (ebcdic),并且我使用在 IKJEFT01 下运行的 OCOPY 命令。但是,当未创建特定输出时,我会收到 JCL 错误并且作业结束。我想检查每个文件名是否存在,并设置一个条件代码来控制是否执行 IKJEFT01 步骤,但不知道使用什么来访问 Unix 文件路径名。
我通过编写 COBOL 程序来检查转换后的 MVS 文件并设置返回码来控制后续 JCL 步骤的执行来解决了这个问题。已完成的工作目前正在接受用户验收测试。也许这听起来像是一个拼凑,但它确实有效,我很高兴分享这个解决方案。
I'm running batch Java on an IBM mainframe under JZOS. The job creates 0 - 6 ".txt" outputs depending upon what it finds in the database. Then, I need to convert those files from Unix to MVS (ebcdic) and I'm using OCOPY command running under IKJEFT01. However, when a particular output was not created, I get a JCL error and the job ends. I'd like to check for the presence or absence of each file name and set a condition code to control whether the IKJEFT01 steps are executed, but don't know what to use that will access the Unix file pathnames.
I have resolved this issue by writing a COBOL program to check the converted MVS files and set return codes to control the execution of subsequent JCL steps. The completed job is now undergoing user acceptance testing. Perhaps it sounds like a kludge, but it does work and I'm happy to share this solution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 JCL 中执行此操作的最简单方法是使用 BPXBATCH,如下所示:
如果文件存在,则该步骤以 CC 0 结束,并且
IF
成功。如果该文件不存在,您将得到一个非零 CC(我相信是 256),并且IF
失败。由于没有
//STDOUT DD
语句,因此没有输出写入 JES。唯一的缺点是它是另一个作业步骤,如果您有很多过程(例如编译/汇编作业),则可能会遇到 255 个步骤的限制。
The simplest way to do this in JCL is to use BPXBATCH as follows:
If the file exists, the step ends with CC 0 and the
IF
succeeds. If the file does not exist, you get a non-zero CC (256, I believe), and theIF
fails.Since there is no
//STDOUT DD
statement, there's no output written to JES.The only drawback is that it is another job step, and if you have a lot of procs (like a compile/assemble job), you can run into the 255 step limit.