在过去的 4 年里,我一直在 Java 领域工作。我想告知我在大型机系统方面的知识是 BIG 0,并且正在寻找一种从 Java 类调用 JCL 脚本的方法。
有人可以让我知道这样做的方法吗?完成相同任务的所有先决条件是什么?
您可以使用 JES 的 FTP 接口来提交 JCL 作业:
IBM 应该有一个可用于与本机系统交互的 Java 工具包。在 AS/400(又名 iSeries、i5、SystemI、...)上,它被称为 JT/400(400 的 Java 工具包)。我想他们对于 zSeries(他们现在称为 SystemZ 吗?)机器有一些非常相似的东西。
也许 System.exec() 可能会在 z/OS JVM 中实现以运行系统作业。
我已经在谷歌上搜索了一段时间,找不到与 JT/400 相媲美的 z/OS 或 OS/390 的任何东西;如果 System.exec 对您没有用,您似乎需要深入研究 JNI 来做您想做的事。从IBM 关于在 OS/390 中使用 JNI 的信息开始。
使用“System.exec()”将调用 USS(Unix 系统服务)shell。
然后,您可以使用 USS 命令之一来启动您的 JCL 运行:
System.exec("tso SUBMIT 'YOUR.JCL.LIB(JOBNAME)'")
然后将安排JCL ——当 JES 认为适合运行它时,它将作为一个单独的进程运行——你不会从作业本身获得任何反馈。
如果你真的想运行一个遗留程序并得到一些结果,你需要在 USS shell 中运行它,或者作为一个 USS shell 脚本或者从 USS 调用一个 TSO 脚本。