「メインフレーム・コンピューター」で遊ぼうこんな時代に今さらメインフレーム・コンピューターに取り組むハメになったみんなが助けあうサイトです。RSSWordPress.orgコスパのいい社内システムの作り方メインフレームを扱っていると、軽い開発やメンテナンスにリソースを割けない、しかし、BPCも考えねば。解決策のひとつがクラウドにおくFileMakerです。コンソーシアム」設立のお知らせブロードリッジ、IBMと提携しハイブリッド・クラウド戦略を加速。reader,内部読み取りプログラム。ジョブはJES2によって実行されますが、そのジョブを定義したJCLを読み取る機能がリーダーです。JES2のリーダーは元々、紙カードに記録されたJCLを読み取るため、カードリーダー・デバイスに対してI/Oを行っていました。今では紙カードもカードリーダーもまず使われることはなく、代わりにDASDや磁気テープ上のデータセットにJCLが作成されます。そこに書かれたJCLを読み取るのが、JES2のINTRDR(内部読み取りプログラム)です。INTRDRはプログラムではあるものの、呼び出して使うサブルーチン的なものではなく、JCLのDD文に定義して使用するか、TSOやISPFなど対話処理のコマンドによって間接的に使用します。この時に使用されるコマンドがSUBMITであることから、INTRDRにジョブを読み取らせることを、JCLをサブミットするなどと呼んでいます。INTRDRの使い方1サブミットしたいジョブのJCLをGENERユーティリティなど、順次データセットのコピーを行うプログラムを使って、コピー先にSYSOUT、ライター名(出力プログラム名)として「INTRDR」を指定します。この場合クラスは省略するか適当なものでかまいません。DUMMYMY.JCLLIB内のメンバーTESTJOB1が、JCLとして読み取られ実行されます。INTRDRの使い方2エディターやブラウザーでサブミットしたいジョブのJCLを開き、SUB[MIT]コマンドを実行することで、ジョブをサブミットできます。TSOコマンド、SUBMITを使ってジョブをサブミットできます。パラメーターにサブミットするJCLの’データセット名(メンバー名)’を指定します。TSOの場合は直接SUBMITコマンドを使うより、CLIST(コマンドプロシージャ)と組み合わせる方が一般的でしょう。CLIST内でサブミットするJCLそのものを生成することで、入力パラメーターや状況に応じてJCL内容を変更することもできます。&SYSOUTLINE1MSPとVOS3ではSUBMITコマンドの入力ソースに端末やCLISTを指定できないので、一旦ワークデータセットに書き出し、そのデータセットをSUBMITコマンドで指定することになります。DELETEINTRDRの使い方3プログラムからINTRDRにJCLを書き出すこともできます。COBOLでJCLを作り、それを順次ファイルへ書き出せばジョブを実行できます。RUN.プログラム内で定義したJCLデータが、SYSUT2に指定したINTRDRに書き出され、ジョブとして実行されます。紹介したGENERユーティリティや上記のCOBOLプログラムではINTRDRを順次データセットとして扱います。書き出したJCLを実際に実行させるにはデータセットをクローズさせる必要があります。アセンブラープログラムならINTRDRをVSAMデータセットとして扱うことも可能です。複数のジョブをサブミットする場合でもCLOSE、再OPENを繰り返す必要はありません(ただしジョブの区切りとしてENDREQマクロを発行する)。サブミットされたJOBのJOBIDが戻されるので、プログラムでJOBIDを処理に使うこともできます。RPLサンプルなのでエラーの判定を省略しています。書き出されれば、JOBIDはRPLのRPLRBARフィールドに設定されます(CL8'JOBnnnnn')。スプールや空きジョブ番号などのJES2リソースが不足した状態では、発行したPUTマクロまたはENDREQマクロが完了しません。この場合はJES2側で必要な対処を行う必要があります(例えば不要なジョブ出力を消去する)。応答がないからと言って、プログラムをキャンセルしても意味がありません。COBOLやTSOコマンドであっても同じです。