実践編(04.バックグラウンドでのプログラム実行(z/OS Batch))

★厳選オススメ記事!

背景

50年前、プログラムを変更する必要なく異なる入力と出力を使用してプログラムを実行する非常にかしこいメカニズムが発明されました。
そのメカニズムのことをJob Control Langugage とか略してJCLと呼びます。
JCLの最も重要な機能がJobの実行を操作することです。JCLはプログラム言語ではありますが、アプリケーションプログラミングを目的としていません。
その代わりに、JCLはプログラムの実行をstackやqueueしたり、また入力と出力をそれぞれのプログラムと紐付けることに使用されています。
多くのプログラムは、準備され、等間隔にスケジュールされ順番に実行されます。この一覧の処理は"batch"処理と呼ばれています。

実践

エディターを使用してJCLを確認して実行してみましょう。このJCLはバックグランドでJOBを実行するので、我々は作業を続けることが出来ます。
ジョブが完了するとz/OSが知らせてくれます。この一連の流れを"background processing"と読んでいます。

Useful Tip

ISPFパネルのオプションナンバーは前に=をつけることで、ISPFプリマリーオプションメニュー上で実行されたように振る舞います。
=3.4と他のパネルで実行すると、現在のISPFパネルから直接3.4のDslist Utility panelに移動します。

CC####.JCLを編集し、PDS directoryプライマリーコマンドラインでSELECT NEW JCLと実行して下さい。
NEWJCLはまだ存在していないので、SELECTコマンドの実行結果は、NEWJCLという名前の空のメンバが作成されます。
エディターは新しいメンバを開きブランクの入力行を表示します。
・プライマリーコマンドライン上で、COPY 'ZOS.PUBLIC.JCL(MYJOB)'を実行して下さい。
・プライマリーコマンドライン上で、SUBMITと実行して下さい。
・F3を入力して、保存して抜けて下さい。
上記ステップの結果は、ZOS.PUBLIC.JCLのMYJOBメンバをNEWJCLにコピーし、そのJCLを実行した結果です。
JCLの実行が正常終了すると、P2.OUTPUT(#04) が作成されます。

使用JCL

000001 //MYJOB   JOB 1                                                         
000002 //S1      EXEC PGM=SORT                                                 
000003 //SYSOUT  DD   SYSOUT=*                                                 
000004 //SORTIN  DD   *                                                        
000005   Part 2 Challenge #04 is complete &SYSDATE                             
000006 //SORTOUT DD   DSN=&SYSUID..P2.OUTPUT(#04),DISP=SHR                     
000007 //SYSIN   DD   *                                                        
000008   OPTION COPY                                                           
000009 /*