JP1/AJS3を使い始めると、「ジョブ」と「ジョブネット」という言葉が出てきます。
名前が似ているため、最初は何が違うのか分かりにくいかもしれません。
私もアプリSEとしてJP1/AJS3を使い、ジョブやジョブネットを作成・修正しながら運用していました。
実際に扱ってみると、ジョブは一つ一つの処理、ジョブネットは複数のジョブを実行順序とともにまとめたもの、と考えると分かりやすくなります。
また、実務ではジョブネットの中にさらにジョブネットを作る「ネストジョブネット」も使っていました。
この記事では、現在のJP1/AJS3公式情報と私の実務経験を分けながら、ジョブ・ジョブネット・ネストジョブネットの違いと、実際にどのように見ていたのかを紹介します。
なお、JP1/AJS3にはイベント監視やファイル監視、時間制御などさまざまな機能がありますが、今回はジョブネットの基本に絞ります。
ジョブは一つの処理、ジョブネットは処理の流れ
JP1/AJS3の現在の公式マニュアルでは、ジョブは業務を構成する処理の最小単位として説明されています。
一方、ジョブネットは複数のジョブをまとめ、実行する順序を定義するための単位です。
たとえば、
処理A
↓
処理B
↓
処理C
という一連の処理がある場合、それぞれをジョブとして定義し、その実行順序をジョブネットとして組み立てるイメージです。
私も実務では、一つ一つのジョブだけを見るのではなく、ジョブネット全体を見ながら処理の前後関係を確認していました。
日立公式「JP1/Automatic Job Management System 3 導入ガイド」
ネストジョブネットとは
JP1/AJS3では、ジョブネットの中にさらにジョブネットを定義できます。
現在の公式マニュアルでは、ジョブネットの中に定義したジョブネットを「ネストジョブネット」と呼んでいます。
私は実務でもネストジョブネットを使っていました。
分け方は一つではなく、
- システムごと
- 別サーバーごと
- 障害時に実行するエラージョブの遷移先を分けたい場合
など、用途に応じて分けていました。
ネストジョブネットにすると全体を見やすくできた
私がネストジョブネットを使っていて特に感じていたのは、機能そのものよりも見やすさです。
ジョブ数が増え、関連する線が多くなると、画面上のフローがかなり複雑になります。
私には、何もまとめずに作るとスパゲッティコードのように線が散らばって見えることもありました。
そこで、ある程度まとまりのある処理をネストジョブネットへ分けることで、親側のジョブネットから見たときの構成を整理しやすくしていました。
もちろん、細かく分ければよいというわけではありません。
平常時は親側のジョブネットを中心に見ていた
運用中に障害が発生していなければ、私は基本的に親側のジョブネットを中心に確認していました。
ジョブネット全体の実行状態を見て、問題なく流れていれば、その都度ネストジョブネットの中まで細かく確認することは多くありませんでした。
JP1/AJS3 – Viewでは、ジョブネットの進捗状況や配下のジョブの状態を確認できます。
そのため、普段は全体の状態を見て、必要になったときに詳細へ入るという見方をしていました。
日立公式「6.2.1 [JP1/AJS3 – View]ウィンドウでの監視」
障害時はネストジョブネットの中まで確認していた
一方で、障害が発生したときは、私は親側のジョブネットだけでなく、ネストジョブネットの中まで入り、
- どのジョブで止まっているか
- どこまで処理が終わっているか
- 終了コードがどうなっているか
などを確認していました。
リカバリーを行う場合も、ジョブネット全体の流れだけでなく、必要に応じて対象となるジョブや前後関係を確認したうえで、途中から再実行することもありました。
そのため私にとっては、
平常時は親側のジョブネットで全体を見る
障害時はネストジョブネットや個別ジョブまで入って確認する
という使い分けが自然でした。
まとめ:ジョブネットは処理の流れ、ネストはその流れを整理する単位だった
JP1/AJS3では、ジョブが一つ一つの処理、ジョブネットが複数のジョブを実行順序とともにまとめる単位です。
さらに、ジョブネットの中にネストジョブネットを作ることで、処理を用途ごとにまとめることができます。
私も実務では、システム別や別サーバー、障害時の処理などでネストジョブネットを使っていました。
普段は親側のジョブネットで全体を確認し、障害時にはネストジョブネットや個別ジョブまで入り、終了コードや処理状況を確認することが多かったです。

