2.5.1 実行エージェントの検討
マネージャーホストに登録するエージェントホストの情報として,次のことについて検討してください。
- 〈この項の構成〉
(1) 実行エージェント名と実行ホスト名の割り当て
マネージャーホストに登録するエージェントホストの情報として,エージェントホストの論理的な名称である実行エージェント名と物理的な実行ホスト名を登録します。1実行エージェントに対して1台の実行ホストを割り当てます。1台のマネージャーホストに登録できる実行エージェントの数は,最大で1,024です。
ジョブやジョブネットには,実行先として実行エージェント名を定義します。マネージャーホストは,登録されている実行エージェント情報を参照し,ジョブやジョブネットに定義された実行エージェント名に対応する実行ホストにジョブを配信します。これによって,業務の拡大・縮小によるエージェントホストの構成変更などの場合に,ジョブやジョブネットの定義を変更することなく,マネージャーホストに登録されている実行エージェントの情報を変更するだけでJP1/AJS3の運用を継続できます。
(2) ジョブの実行多重度
ジョブ実行先となるエージェントホストのリソースに応じて,同時実行ジョブ数(ジョブ実行多重度)を制限できます。ジョブ実行多重度で同時実行数を制限できるジョブ種別は,キューレスジョブを除くUNIXジョブ,PCジョブ,フレキシブルジョブ,HTTP接続ジョブ,アクションジョブ,カスタムジョブ,および引き継ぎ情報設定ジョブです。
ジョブ実行多重度は,時間帯(30分単位)を指定して設定できます。デフォルトでは,「00:00-00:00=5」(終日,ジョブ実行多重度5)が設定されています。
例えば,「08:00-17:30=5」と指定した場合,8:00〜17:30の間は五つまでジョブを同時に実行できます。このように,時間帯によってジョブの実行多重度を増減させることで負荷を分散させることもできます。
なお,ジョブの実行数がジョブ実行多重度を超えた場合,ジョブはマネージャーホストに滞留します。
- 注意事項
-
-
実行エージェントの追加時にジョブ実行多重度を省略した場合,「終日,ジョブ実行多重度5」が設定されるため,実行時間の短いジョブや同時に実行登録するジョブ数が少ないときには影響がありませんが,実行時間の長いジョブや同時に実行登録するジョブ数が多いと,実行中のジョブ数がジョブ実行多重度に達しやすく,ジョブ実行多重度に達している時間が長いことによって,後続のジョブの実行に影響を及ぼします。
エージェントホストで実行中のジョブ数がジョブ実行多重度に達している間,後続のジョブは実行中のジョブが終了するまで「キューイング」状態になって待機します。このような場合,予定よりもジョブの終了時刻が遅くなるため,エージェントホストのリソースに加えてジョブの実行時間,単位時間当たりのジョブ実行数を考慮してジョブ実行多重度を大きく設定することを検討してください。
-
ジョブ実行多重度は,実行エージェント単位に設定します。同一の実行先ホストを異なる実行エージェント名で接続している場合は,それぞれの実行エージェントに設定されているジョブ実行多重度の合計のジョブが実行先ホストで同時に実行されることになります。
例えば,ジョブ実行多重度が「00:00-00:00=10」(終日,ジョブ実行多重度は10)の実行エージェントとジョブ実行多重度が「00:00-00:00=5」(終日,ジョブ実行多重度は5)の実行エージェントが同じ実行ホストを指定している場合,最大15のジョブが同時に実行される可能性があります。
ジョブ実行多重度を設定する場合は,実行先ホスト単位に適切な値を設定してください。
-
(3) デフォルト実行エージェントについて
マネージャーホストには,自ホストをエージェントホストとしたエージェント情報がデフォルトで定義されています。このエージェントをデフォルト実行エージェントといいます。
デフォルト実行エージェントとして定義されている内容を次に示します。
項番 |
項目 |
設定値 |
---|---|---|
1 |
実行エージェント名 |
@SYSTEM |
2 |
実行ホスト名 |
マネージャーホスト名 |
3 |
ジョブ実行多重度 |
5(00:00-00:00=5) |
4 |
受付配信制限 |
ジョブを受け付け,実行ホストに配信する。 |
マネージャーホストでジョブを実行したい場合は,このデフォルト実行エージェントを使用してジョブを実行できます。また,ジョブやジョブネットの定義で実行エージェントの指定を省略した場合も,このデフォルト実行エージェントでジョブが実行されます。
デフォルト実行エージェントの定義内容を変更する場合は,ajsagtaltコマンドを使用します。ajsagtaltコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsagtalt」を参照してください。
- 注意事項
-
JP1/AJS2では,マネージャーホスト名を指定すると,自動的に省略時と同じマネージャーホストでジョブが実行されましたが,JP1/AJS3で自ホスト名を指定してジョブを実行するには,デフォルト実行エージェントとは別に,自ホスト名と同名の実行エージェントを追加する必要があります。自ホスト名を指定した場合,ユニット定義を別のマネージャーホストに移行するとき,ユニット定義の実行エージェントを移行先のホスト名に変更しなければならないため,自ホストでジョブを実行する場合は,デフォルト実行エージェントを使用することを推奨します。
(4) 実行エージェントの追加について
セットアップ直後は,マネージャーホストにデフォルトの実行エージェントが作成されただけの状態であるため,ジョブを実行させるエージェントホスト分の実行エージェントを追加する必要があります。
実行エージェントは,ajsagtaddコマンドを使用して追加します。また,複数の実行エージェントを一括して追加することもできます。実行エージェントの追加方法については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 4.1 実行エージェントの設定」を参照してください。複数の実行エージェントを一括して追加する場合は,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsagtadd」の-fオプションの説明を参照してください。
(5) エージェント自動定義機能について
エージェント自動定義機能を有効にすると,ジョブの詳細定義で指定した実行エージェント名と同名の実行エージェント(実行エージェント名と実行ホスト名の割り当ての定義)が自動的にマネージャーホストに追加されます。
エージェント自動定義機能の設定については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.5 ジョブ実行環境設定」を参照してください。
- 注意事項
-
-
エージェント自動定義機能の設定は,システム管理者がセットアップ時に実施することを推奨します。また,エージェント自動定義機能を有効にしてジョブを実行するときは,JP1_JPQ_User権限だけでなく,JP1_JPQ_Admin権限を持つJP1ユーザーで実行するようにしてください。
-
エージェント自動定義機能と実行エージェント制限の両方を使用する場合,実行エージェントプロファイルには,ジョブ実行時に自動定義される実行エージェントを,ジョブ実行前に設定しておく必要があります。実行エージェントプロファイルに設定していないとき,ジョブは「起動失敗」状態になります。また,実行エージェントの追加はされません。
-
(6) 実行エージェント制限について
実行エージェント制限を使用すると,ユニットごとに,ジョブの実行を許可する実行エージェントを設定できます。
実行を許可する実行エージェントを,実行エージェントプロファイルという運用プロファイルに設定しておくことで,誤った実行エージェントでジョブが実行されるのを防ぐことができます。
実行エージェントプロファイルの設定手順については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 21.1.1 実行エージェント制限の設定手順」を参照してください。
(a) 実行エージェント制限の概要
実行エージェントプロファイルを有効に設定している場合,ジョブの詳細定義で指定した実行エージェントが実行エージェントプロファイルに設定されているかどうか,次のタイミングで確認されます。
-
JP1/AJS3 - Viewでのユニット定義時
-
ajschkdefコマンドでの定義内容の事前チェック時
-
ジョブ実行時
実行エージェントプロファイルに設定していない実行エージェントを指定していた場合,定義エラーまたはジョブ実行時に「起動失敗」状態になります。
実行エージェント制限を使用した例を,次の図に示します。
|
この図の例では,ジョブネットnet1配下のジョブの実行を許可する実行エージェントとしてAGT1を,ジョブネットnet2配下のジョブの実行を許可する実行エージェントとしてAGT2を,実行エージェントプロファイルに設定しています。/net1/job1および/net2/job1は,許可されている実行エージェントを指定しているため実行されます。/net1/job2は,許可されていない実行エージェントAGT2を指定しているため,ジョブの実行が抑止されます。/net2/job2は,実行エージェントを省略したことによって,マネージャーホスト上(デフォルト実行エージェント)でジョブを実行しようとするため,ジョブの実行が抑止されます。ユニット定義時に実行エージェントを省略し,マネージャーホスト上でジョブを実行させたい場合は,デフォルト実行エージェント名を実行エージェントプロファイルに設定する必要があります。
なお,実行エージェントプロファイルに設定していないユニットについては,実行エージェント制限の確認は行われません。
■ 対象ユニット
ユニットの詳細定義で指定した実行エージェントが,実行エージェントプロファイルに設定されているかどうか確認されるように設定できるユニットは,次のとおりです。
-
ルートジョブネット※1
-
ネストジョブネット※1
-
UNIXジョブ
-
PCジョブ
-
フレキシブルジョブ※2
-
HTTP接続ジョブ
-
イベントジョブ
-
アクションジョブ
-
カスタムジョブ
- 注※1
-
JP1/AJS3 - Viewでユニット定義をする際に,実行エージェントを指定した場合だけ確認されます。
- 注※2
-
フレキシブルジョブの場合は中継エージェントが該当します。フレキシブルジョブの中継機能を利用しない場合,「@SYSTEM」を許可するか,フレキシブルジョブの中継エージェント用の実行エージェントを定義して許可してください。
■ 実行エージェントの確認方法
実行エージェント制限では,JP1/AJS3 - Viewでのユニット定義時,ajschkdefコマンドでの定義内容の事前チェック時,およびジョブ実行時に,実行エージェントの確認が実施されます。
それぞれの場合での確認方法について,次に説明します。
- JP1/AJS3 - Viewでのユニット定義時
-
ユニットの詳細定義ダイアログボックスの[実行エージェント]コンボボックスに,実行エージェントプロファイルに設定されている実行エージェントだけが表示され,その中から実行エージェントを選択できるようになります。コンボボックスに直接入力することもできます。[OK]ボタンをクリックすると,指定した実行エージェントが実行エージェントプロファイルに設定されているかどうかが確認されます。
なお,ユニット定義時にだけ確認して,ジョブ実行時には確認しないように設定することもできます。
ただし,[詳細定義−[フレキシブルジョブ]]ダイアログボックスの[中継エージェント]には,実行エージェントプロファイルに設定されている実行エージェントはコンボボックスで表示されません。また,[OK]ボタンをクリックしたときに,実行エージェントプロファイルに設定されているかどうかも確認されません。
- ajschkdefコマンドでの定義内容の事前チェック時
-
定義内容の事前チェックを実施するときに,実行エージェントが実行エージェントプロファイルに設定されているかどうかが確認されます。実行エージェントプロファイルに設定されていない実行エージェントを指定している場合は,チェック結果格納ファイルにチェック結果情報が出力されます。
なお,実行エージェントプロファイルの状態(有効/無効)に関係なく,ajschkdefコマンドの-Cおよび-pオプションを指定すると確認できます。
- ジョブ実行時
-
ジョブ実行時に,実行エージェントが実行エージェントプロファイルに設定されているかどうかが確認されます。実行エージェントプロファイルに設定されていない実行エージェントでジョブを実行しようとした場合は,ジョブの状態が「起動失敗」状態になります。ただし,起動条件として複数のイベントジョブを定義している場合,起動条件として定義したイベントジョブの一つが実行エージェントの確認でエラーになったときは,次に示す状態になります。
-
起動条件付きジョブネットの監視世代
「監視打ち切り終了」状態
-
実行エージェントの確認でエラーになったジョブ
「起動失敗」状態
-
起動条件として定義したイベントジョブのうち,実行エージェントの確認でエラーになったジョブ以外のジョブ
「未実行終了」状態
なお,ジョブ実行時にだけ確認して,ユニット定義時には確認しないように設定することもできます。
-
(b) 許可する実行エージェント
実行エージェントプロファイルに複数の階層でユニットを指定する場合,下位ユニットで指定する実行エージェントは,上位のすべてのユニットで許可されている必要があります。
実行エージェントプロファイルの設定と,許可する実行エージェントの関係を,次の図に示します。
|
この図の例では,ジョブAはスケジューラーサービス,ルートジョブネットA,およびネストジョブネットAのすべてで許可している実行エージェントAG1でだけ実行できます。ジョブDは,上位のユニットすべてで許可している実行エージェントがないため,定義およびジョブの実行ができません。このような記載をした実行エージェントプロファイルは,実行エージェント制限を有効にしようとした時に構文エラーとして扱われます。
なお,複数の階層のユニットに許可する実行エージェントを設定する場合,実行エージェントの確認処理による業務への影響を抑えるために,次の階層までの設定にすることを推奨します。
-
スケジューラーサービス
-
スケジューラーサービス直下のユニット
■ 自ホストでの実行を許可する場合
「@SYSTEM」を設定します。ただし,自ホスト名と同じ名前の実行エージェントを許可したいときは,その実行エージェント名を設定します。
キューレスジョブで自ホストでの実行を許可したいときは,自ホスト名を設定します。ここでいう自ホスト名とは,次の方法で確認できる名前です。
-
物理ホストの場合
hostnameコマンドを実行して得られるホスト名
-
論理ホストの場合(Windows)
JP1/AJS3を運用しているホスト上で[コントロールパネル]ウィンドウから[サービス]を選択するか,または[管理ツール]−[サービス]を選択し,[サービス]ウィンドウに表示される「JP1/AJS3_xxxxx」の「xxxxx」の部分に表示されるホスト名
-
論理ホストの場合(UNIX)
psコマンドを実行し,jajs_spmdプロセスの後ろに表示されるホスト名
■ ユニットの実行エージェントに実行エージェントグループを指定する場合
ユニットの実行エージェントに実行エージェントグループを指定する場合,実行エージェントプロファイルに,実行を許可する実行エージェントグループ名を設定します。
実行エージェントプロファイルに実行エージェントグループを設定した場合の例を次の図に示します。
|
この図の例では,/Grp1/net1/配下のジョブの実行エージェントに,「AGTGRP1」を指定したときと「AGT1」を指定したときでは,どちらも実際の実行先は実行エージェントAGT1(実行ホストhost1)です。ただし,実行エージェントプロファイルには「AGT1」が設定されていないため,ジョブの実行エージェントに「AGT1」を指定した場合は実行エージェントの確認でエラーになります。
■ ユニットの実行エージェントにマクロ変数名を指定する場合
ユニットの実行エージェントにマクロ変数名を指定する場合,実行エージェント制限を確認するタイミングの設定に従って,許可する実行先として実行エージェントプロファイルに実行エージェント名またはマクロ変数名を設定します。
マクロ変数名を指定する場合に実行エージェントプロファイルに設定する内容を,次の表に示します。
項番 |
ユニット定義時の制限確認(View) |
ジョブ実行時の制限確認(JobExec) |
定義または実行を許可する実行先 |
---|---|---|---|
1 |
しない(off) |
する(on) |
実行エージェント名 |
2 |
する(on) |
しない(off) |
マクロ変数名 |
3 |
する(on) |
する(on) |
|
なお,項番1または項番2の組み合わせで,実行エージェントプロファイルを設定することを推奨します。
■ キューレスジョブの場合
キューレスジョブに対して実行エージェント制限を使用する場合,実行エージェントプロファイルには,キューレスジョブの実行先となるホスト名を設定します。
なお,詳細定義の[実行エージェント]に,クラス名を含めて実行先ホストを指定している場合,「!クラス名」の部分を実行エージェントプロファイルに設定する必要はありません。
また,アタッチされていない論理ホストをキューレスジョブの実行先として指定している場合,次の条件を満たしていれば,論理ホストに対応する物理ホスト上でキューレスジョブが実行されます。
-
キューレスジョブに指定している論理ホストが実行エージェントプロファイルに設定されている
-
環境設定パラメーターAJSQL_NOATTACHREQに「exec」が設定されている
このとき,物理ホストが実行エージェントプロファイルに設定されているかどうかは関係ありません。実行エージェントプロファイルに物理ホストを定義していなくても,物理ホスト上でキューレスジョブが実行されます。
(c) 注意事項
-
実行エージェント制限は,JP1/AJS3 - ManagerおよびJP1/AJS3 - Viewのバージョンが09-50以降の場合にだけ,使用できます。
-
次に示す操作でユニットを作成した場合,ユニット作成時には実行エージェントは確認されません。確認したい場合は,事前チェックを実施してください。
-
コピーまたは切り取りをしたユニットの貼り付け
-
退避したユニットの回復
-
JP1/NETM/DMまたはJP1/FTPを使ったユニットの配布
-
-
ジョブを実行する前に,実行エージェントプロファイルに設定している実行エージェントまたは実行エージェントグループが,JP1/AJS3 - Managerに定義されていることを確認してください。JP1/AJS3 - Managerに定義されていなくても,ユニット定義時にはエラーになりません。事前チェック時およびジョブ実行時にエラーになります。
-
エージェント自動定義機能と実行エージェント制限の両方を使用する場合,実行エージェントプロファイルには,ジョブ実行時に自動定義される実行エージェントを,ジョブ実行前に設定しておく必要があります。実行エージェントプロファイルに設定していないとき,ジョブは「起動失敗」状態になります。また,実行エージェントの追加はされません。
-
リモートジョブネットおよび配下のユニットに指定する実行エージェントは,リモートジョブネットの転送先のJP1/AJS3 - Manager上の実行エージェント名を指定します。そのため,ユニットの定義時および事前チェック時には,実行エージェントは確認されません。ジョブ実行時は,リモートジョブネットの転送先のJP1/AJS3 - Managerで実行エージェントプロファイルが有効であれば,その内容に従って実行エージェントが確認されます。