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