JP1/Automatic Job Management System 3(JP1/AJS)でジョブやジョブネットを定義する際、「どこに実行エージェント(実行ホスト)を設定すると、配下のジョブがどこで動くのか?」という階層ごとの継承関係は整理しておきたいポイントです。
ネストジョブネット自体に実行エージェントを指定したパターンも含めて、実行先決定のルールを図解で分かりやすく解説します。
実行エージェント決定の全体像(構造図)
以下の構成例で、ルートジョブネット、ネストジョブネット、個々のジョブにそれぞれエージェントを指定(または省略)した場合の挙動を表しました。
[ルートジョブネット] (実行エージェント: AgentA )
│
├──[ネストジョブネット1] (実行エージェント: 空白 )
│ │
│ ├──[ジョブ1-1] (実行エージェント: 空白 )
│ │ └─► 【判定結果】 AgentA で実行(ルートの設定を継承)
│ │
│ └──[ジョブ1-2] (実行エージェント: AgentC )
│ └─► 【判定結果】 AgentC で実行(ジョブ個別の設定を最優先)
│
└──[ネストジョブネット2] (実行エージェント: AgentB ) ※ネストに直接指定
│
├──[ジョブ2-1] (実行エージェント: 空白 )
│ └─► 【判定結果】 AgentB で実行(直近の上位ネストの設定を継承)
│
└──[ジョブ2-2] (実行エージェント: AgentC )
└─► 【判定結果】 AgentC で実行(ジョブ個別の設定を最優先)
エージェント決定の優先順位(4段階ルール)
JP1/AJSでは、ジョブを実行するホストを決定する際、「下位(自分自身)から順に遡って設定を探す」というロジックで判定します。
優先度 1:ジョブ個別の「実行エージェント」指定(最優先)
ジョブの詳細定義で「AgentC」などの実行エージェントが明示的に設定されている場合(ジョブ1-2、ジョブ2-2)、親のネストジョブネットやルートジョブネットの設定が何であれ、指定されたジョブ個別の設定が最も優先されます。
優先度 2:直近の上位ユニット(ネストジョブネット)の指定
ジョブ側の設定が「空白」の場合、1つ上のネストジョブネットの設定を参照します。 ネストジョブネット2 のように 「AgentB」 が指定されている場合、配下の空白ジョブ(ジョブ2-1)はルートジョブネットの設定を上書きし、AgentB で実行されます。
優先度 3:ルートジョブネットの指定
ネストジョブネット側も「空白」の場合、最上位であるルートジョブネットの設定を参照します。 ネストジョブネット1(空白)配下の ジョブ1-1(空白)は、ルートジョブネットに設定されている AgentA を継承して実行されます。
優先度 4:自ホスト(JP1/AJS Manager)の仮定
ルートジョブネットも含め、全ての階層で実行エージェントが「空白」だった場合は、デフォルト動作としてマネージャーホスト自身上で実行されます。
階層設計のポイント
-
サブシステムごとに実行先を変えたい場合: ルートジョブネットはAgentAにしつつ、特定の処理ブロックをまとめたネストジョブネットにだけAgentBを指定すれば、配下のジョブを「空白」のまま一括でAgentB実行にまとめることができます。
-
メンテナンス性の向上: ジョブ単体にエージェント名をベタ書きせず、ネストやルートジョブネット側で一括管理しておくと、将来のサーバー移行やホスト名変更の際にも修正箇所を最小限に抑えられます。

