指定した時刻にジョブを実行する
指定した時刻にジョブを実行する(z/OS V2.2からのJES2の新たなジョブ・スケジューリング機能②)
- 実行開始時刻を指定する( ○年○月○日○時○分以降に実行を開始)
- 一定時間実行開始を保留する( サブミット後60分間実行を延期)
- 実行開始期限を指定する( ○年○月○日○時○分までに実行を開始)
- 一定時間内に実行を開始する( サブミット後30分以内に実行を開始)
- 実行開始時刻の指定 ⇒ HOLDUNTLパラメーターで時刻と日付を指定する。
ジョブ・デッドライン・スケジューリング
ジョブ・デッドライン・スケジューリング(Job Deadline Scheduling)は、ジョブの実行開始時刻を調整する機能で、以下に示すようなことができます。
実行開始時刻や期限などは、JCLのJOBステートメントの直後に、SCHEDULEステートメントで指定します。これまでも、JOBステートメントにTYPRUN=HOLDパラメーターを指定すれば、ジョブの実行開始は保留できましたが、保留状態の解除は時刻や先行ジョブの状態を見て、オペレーター(あるいはジョブの状態をモニターするソフトウェアによって)がJES2コマンド($A)によって行う必要がありました。
SCHEDULE ステートメント
//jobname JOB ,CLASS=A,MSGCLASS=B,MSGLEVEL=(1,1) // SCHEDULE HOLDUNTL=('16:20','11/07/2016')
HOLDUNTLパラメーターは、指定期限までジョブの実行を保留します。この例では、2016/11/7の16:20になるとジョブの保留が解かれて実行が開始されます。
//jobname JOB ,CLASS=A,MSGCLASS=B,MSGLEVEL=(1,1) // SCHEDULE HOLDUNTL='+01:00'
HOLDUNTLパラメーターは、指定時間の間ジョブの実行を保留(延期)します。この例では、サブミットされて1時間が経過するとジョブの保留が解かれて実行が開始されます。
//jobname JOB ,CLASS=A,MSGCLASS=B,MSGLEVEL=(1,1) // SCHEDULE STARTBY=('16:20','11/07/2016')
STARTBYパラメーターは、指定期限までにジョブの実行を開始します。この例では、2016/11/7の16:20までにジョブの実行が開始されるよう、ジョブがキュー内で調整されます。
//jobname JOB ,CLASS=A,MSGCLASS=B,MSGLEVEL=(1,1) // SCHEDULE STARTBY='+00:30'
STARTBYパラメーターは、指定時間までにジョブの実行を開始します。この例では、サブミットされて30分以内にジョブの実行が開始されるよう、ジョブがキュー内で調整されます。
//jobname JOB ,CLASS=A,MSGCLASS=B,MSGLEVEL=(1,1) // SCHEDULE HOLDUNTL=('16:00','11/07/2016'), // STARTBY=('17:00','11/07/2016')
2016/11/7の16時から17時までの間にジョブの実行を開始します。この例では、サブミット後、2016/11/7の16時まで実行を保留し、その後17時までには実行が開始されるよう、ジョブがキュー内で調整されます。
z/OS V2.2以降は、JCLにSCHEDULEステートメントを追加すれば、指定時刻以降に開始させたいジョブなども事前にサブミットするだけで実行開始を制御できるようになります。指定時刻にリリース・コマンドを投入したり、自動運用ソフトを介して実行させる必要はありません(*1)。
*1 運用管理上の理由で、業務ジョブはすべて特定の自動運用ソフトによって実行管理させている、といった場合は別。