Hitachi

JP1 Version 12 JP1/Automatic Job Management System 3 導入ガイド


10.5.1 キューレスジョブの概要と特長

キューレスジョブの概要と特長を説明します。

〈この項の構成〉

(1) キューレスジョブの実行環境

キューレスジョブの場合,エージェントのJP1/AJS3キューレスエージェントサービスが,同時に実行するジョブ数などを管理します。そのため,キューレスジョブを実行する場合は,エージェントホストでJP1/AJS3キューレスエージェントサービスを起動しておく必要があります。

キューレスジョブの実行処理の流れを,次の図に示します。

図10‒25 キューレスジョブの実行処理の流れ

[図データ]

キューレスジョブの場合,ジョブネットのジョブは,キューには登録されないで,スケジューラーから直接エージェント(キューレスエージェント)に送られます。このため,スケジューラーサービスを多重化した構成では,ジョブ実行性能の面で特に効果があります。

キューレスジョブを実行する場合,ジョブの実行を依頼するJP1ユーザー名とマネージャーのホスト名を,エージェントホストのOSユーザーにマッピングしておく必要があります。また,ジョブを実行するOSユーザーを指定してジョブを実行する場合は,そのOSユーザーをJP1ユーザーとマッピングしておく必要があります。

キューレスジョブの実行中は,回線の接続と切断の回数を減らすために,マネージャー・エージェント間の通信回線を接続状態のままにしています。キューを使用したジョブの場合は,定期的にポーリングすることでジョブの状態を確認しますが,キューレスジョブの場合は,ポーリングしません。キューレスジョブの異常の検知は,ジョブ実行中の回線切断を検知することで行います。

(2) キューレスジョブの状態

キューレスジョブはキューを使わないため,ジョブ実行の際にジョブをキューに登録する「キューイング」という状態がありません。キューを使うジョブの状態は,「実行待ち」→「キューイング」→「実行中」(または「起動失敗」)と遷移しますが,キューレスジョブは,「実行待ち」→「実行中」(または「起動失敗」)と遷移します。

(3) 最大同時ジョブ実行数

キューレスエージェントサービス内の最大同時ジョブ実行数の設定によって,そのホストで同時に実行できるジョブ数を制限できます。また,キューレスエージェントサービスにクラスを定義し,クラスごとに最大同時ジョブ実行数を設定することで,運用に合わせた負荷分散ができます。

最大同時ジョブ実行数を超えたジョブは,キューレスエージェントサービスまたはクラスごとに設定した最大待ちジョブ数まで実行待ちの状態でキューレスエージェントサービスのメモリー内で管理されます。最大待ちジョブ数を超えたジョブは,「起動失敗」状態になります。

(a) キューレスジョブの最大同時ジョブ実行数の設定方法

キューレスエージェントサービスの最大同時ジョブ実行数および最大待ちジョブ数は,環境設定パラメーターAJSQL_JOBMAXおよびAJSQL_JOBWAITMAXで設定できます。環境設定パラメーターAJSQL_JOBMAXおよびAJSQL_JOBWAITMAXは,jajs_configコマンドで設定できます。環境設定パラメーターの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.10 キューレスジョブ実行環境設定」を参照してください。

ajsqlalterコマンドを使用すると,キューレスエージェントサービス運用中に最大同時ジョブ実行数および最大待ちジョブ数を変更できます。最大同時ジョブ実行数が0の場合,ジョブは実行されないで最大待ちジョブ数を超えるまで実行待ち状態としてキューレスエージェントサービス上のメモリーで管理されます。運用に合わせて最大同時ジョブ実行数,最大待ちジョブ数を変更してください。ajsqlalterコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 4. 特別な運用で使用するコマンド ajsqlalter」を参照してください。

(b) クラスごとの最大同時ジョブ実行数を使用したキューレスジョブの負荷分散

キューレスジョブを登録する際に,あらかじめ最大同時ジョブ実行数を設定したクラスを定義することによって,ジョブの排他実行や優先的に特定のジョブを実行する時間帯を制限するなど,運用に合わせた負荷分散ができます。

クラスごとの最大同時ジョブ実行数および最大待ちジョブ数を設定する場合は,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 6.4.1 キューレスジョブ環境でクラスを指定したジョブを実行するための設定」(Windowsの場合)またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド 15.4.1 キューレスジョブ環境でクラスを指定したジョブを実行するための設定」(UNIXの場合)を参照してください。

例えば,排他資源を使用するために,あるジョブを単独で実行させたい場合は,最大同時ジョブ実行数に1を設定したクラスを定義し,そのクラスにジョブを登録することで,常に単独でジョブを実行できます。また,ある時間帯だけ優先して実行させたいジョブを登録するクラスの最大同時ジョブ実行数を増やし,ほかのクラスの最大同時ジョブ実行数を減らせば,特定のジョブだけを優先的に実行させることができます。

(c) キューレスエージェントサービス全体とクラスごとの最大同時ジョブ実行数の関係

キューレスエージェントサービス全体の最大同時ジョブ実行数を超える場合は,キューレスジョブを登録したクラスの最大同時ジョブ実行数に満たなくても,そのジョブは実行待ちの状態になります。また,キューレスエージェント全体の最大待ちジョブ数を超える場合は,クラスの最大待ちジョブ数に満たなくても,そのジョブは「起動失敗」状態になります。

(4) キューレスジョブ実行時のOSユーザー

実行先サービスに[標準]を指定しているジョブと同様に,エージェントホストのJP1/BaseのユーザーマッピングでJP1ユーザーに対応づけられているOSユーザーで,キューレスジョブは実行されます。ただし,キューレスジョブの場合,マネージャーホストでファイル転送時にユーザーマッピングを実施します。このため,マネージャーホストで,JP1ユーザーが任意のOSユーザーにマッピングされている必要があります。

注意事項
  • キューレスジョブを実行する場合,JP1/Baseのユーザーマッピングの[サーバホスト名]に,エージェントホストで名前解決されるマネージャーホスト名を記載する必要があります。

  • キューレスジョブの実行時に,ユーザーマッピング情報をキャッシュします。このため,ユーザーマッピングまたはOSユーザーの情報を変更した場合,ユーザーマッピングキャッシュを消去する必要があります。次のどちらかの方法でキャッシュを消去してください。

    ・キューレスエージェントサービスおよびキューレスファイル転送サービスを再起動する。

    ajsqlalterコマンドに-rオプションを指定して実行する。