私は過去 4 年間 Java で働いています。メインフレーム システムに関する私の知識はゼロであり、Java クラスから JCL スクリプトを呼び出す方法を探していることをお知らせします。
誰かがこれを行う方法を教えてもらえますか? 同じことを達成するためのすべての必要条件は何ですか?
JES への FTP インターフェースを使用して、JCL ジョブをサブミットできます。
IBM は、ネイティブ システムとのインターフェースに使用できる Java ツールキットを用意する必要があります。AS/400 (別名 iSeries、i5、SystemI など) では、JT/400 (Java Toolkit for the 400) と呼ばれていました。zSeries (現在は SystemZ と呼ばれていますか?) マシンに非常に似たものがあると思います。
おそらく、システム ジョブを実行するために System.exec() が z/OS JVM に実装されている可能性があります。
私はしばらくグーグルで検索してきましたが、JT/400 に匹敵する z/OS または OS/390 を見つけることができません。System.exec が役に立たない場合は、必要なことを行うために JNI に飛び込む必要があるようです。OS/390 での JNI の使用に関する IBM の情報から始めます。
「System.exec()」を使用すると、USS (Unix System Services) シェルが呼び出されます。
その後、USS コマンドの 1 つを使用して、JCL の実行を開始できます。
System.exec("tso SUBMIT 'YOUR.JCL.LIB(JOBNAME)'")
その後、JCL がスケジュールされます。JES が実行するのに適していると判断した場合、JCL は別のプロセスとして実行されます。ジョブ自体からのフィードバックは得られません。
レガシー プログラムを実行して何らかの結果を取得したい場合は、USS シェル スクリプトとして、または USS から TSO スクリプトを呼び出して、USS シェル内で実行する必要があります。