ジョブの同時実行制御機能のご紹介
投稿日: / 更新日:
この記事は2年以上前に書かれたものです。情報が古い可能性があります。
こんにちは!
今回はver. 6.2から追加された機能の、ジョブの同時実行制御機能についてご紹介いたします。
ジョブの同時実行制御とは、ジョブ同士をキューイングし、同時に実行するジョブの数を制御出来る機能です。
例えば、以下のようなケースで活用できます。
- ファイルI/Oが発生するため、ジョブ同士を排他的に実行したいとき
- ジョブを実行する環境において、CPUやメモリ、ネットワーク帯域等のリソースに限りがあるとき
1.設定方法
早速、設定方法についてご紹介していきます。
ジョブ同時実行制御キューを作成
同時実行制御をしたいジョブを関連付ける、ジョブ同時実行制御キューを作成します。
ジョブ同時実行制御キューは、ジョブ設定[同時実行制御]ビューから作成します。
キューID、キュー名、同時実行可能数(同時に実行したいジョブの数)を設定して作成します。
ジョブ同時実行制御キューにはオーナーロール、オブジェクト権限も設定可能です。
同時実行制御を行いたいジョブにキューを関連付ける
ジョブ同時実行制御キューは、同時実行制御を行いたいジョブに対し、ジョブの作成・変更ダイアログの「制御(ジョブ)」タブで関連付けを行います。
ジョブネット、コマンドジョブ、ファイル転送ジョブ、承認ジョブ、監視ジョブに対してジョブ同時実行制御キューの関連付けが可能です。
2.ジョブの同時実行制御を確認してみる
それでは、ジョブ同時実行制御キューを関連付けたジョブがどの様に実行されるか確認してみましょう。
キューに関連付けたジョブは、ジョブ設定[同時実行制御ジョブ一覧]ビューから確認が出来ます。今回はこのJob1~Job3を実行してみます。
これらのジョブを実行すると、ジョブ同時実行制御キューの同時実行可能数(今回は2つ)までの個数のジョブが実行され、それ以外のジョブはキューが開放されるまで(実行中のジョブが終了するまで)待機します。
Job1~Job3を実行中のジョブ履歴[ジョブ詳細]ビューを見てみましょう。
Job1, Job2は「実行中」、Job3は「実行中(キュー待機)」の状態になっています。
「実行中(キュー待機)」は、ジョブが実行可能になるまで待機している状態を表しており、この状態ではまだノード上でジョブは実行されていません。
Job1が終了すると、Job3が「実行中」に遷移します。
ジョブ同時実行制御キュー単位で、ジョブ履歴から同時実行制御の状況を確認することも出来ます。
ジョブ履歴[同時実行制御]ビューから、ジョブ同時実行制御キューを選択すると、ジョブ履歴[同時実行制御状況]ビューに、キューに関連付けたジョブの実行状態が表示されます。
後から実行したジョブは、「実行中(キュー待機)」状態となり、同様にキューが開放されたら順次実行されます。
以下の画面は、「Job1」~「Job3」を実行した後、更にジョブ同時実行制御キュー「Job-Queue」に関連付けたジョブ「Job4」、「Job5」を実行した時のジョブ履歴の状態です。
また、同時実行制御は待ち条件や開始遅延など、ジョブを制御する他の機能とも組み合わせることが出来ます。
例えば、同時実行制御を行うジョブに開始遅延を設定しておき、一定時間キューが開放されなければ終了する…といった制御も可能です。
簡単ですが、ご紹介は以上です。
ジョブ機能への理解を深めてより便利に活用しましょう!