【Hinemos】ジョブの終了状態判定用ジョブを作成してみた
投稿日: / 更新日:

■はじめに
こんにちは!
Hinemosでは「ジョブの待ち条件」機能が用意されており、
これを活用することで、柔軟かつ高度なジョブ制御が可能になります。
今回は、この待ち条件機能を使って「特定ジョブの異常終了時にジョブネットを異常終了させる方法」についてご紹介します。
■本記事でご紹介するジョブ構成
本記事では以下のようなジョブ構成で行います。
今回のジョブ構成では以下のようにジョブ1を先行ジョブとして、
ジョブ2がジョブ1の後続ジョブ、ジョブ3がジョブ2の後続ジョブとします。
また、それぞれのジョブの”成功”または”失敗”にかかわらず、最後までジョブが実行する構成とします
■ ジョブネット終了状態の判定方法
ジョブネットの終了状態は、ジョブネット内において後続ジョブを持たないジョブの終了値と、
設定された終了状態の判定条件に基づいて判定されます。
本ケースでは、ジョブ3が後続ジョブを持たないため、その終了値が判定の対象となります。
※ジョブネットおよびジョブ3の設定内容については後述します。
ジョブ3の終了値が「終了状態:正常」の判定条件に該当しているため、
ジョブ3は「正常終了」と判定され、結果としてジョブネット全体の終了状態も「正常」となります。
そのため、仮にジョブ1およびジョブ2が「異常終了」していた場合でも、
後続ジョブを持たないジョブ3が「正常終了」と判定されれば、ジョブネット全体は「正常終了」として扱われます。
ただし、後続ジョブを持たないジョブが複数存在する場合は、上述と異なる場合がございます。
たとえば、以下のケースにおけるジョブAのように、
ひとつでも終了値が「終了状態:異常」の判定条件に該当するジョブがある場合、
ジョブネット全体は「異常終了」として扱われます。
※ジョブAの設定内容については後述します。
※ジョブネットおよびジョブ3、ジョブAの設定内容
・ジョブネットの設定内容
[終了状態]
・ジョブ3の設定内容
[終了状態]
[起動コマンド]
exit 0
・ジョブAの設定内容
[終了状態]
[起動マンド]
exit -1
■ 判定用ジョブの作成
今回は、ジョブ1またはジョブ2が異常終了した場合に、ジョブネット全体を異常終了させるため、
待ち条件付きの判定用ジョブ(job_4)を作成します。
●ジョブ1の判定用ジョブ(job_4)
以下の設定内容のコマンドジョブを作成します。
[待ち条件](job_1に対しての待ち条件)
名前:ジョブ(終了状態)
ジョブID:job_1
値:異常
判定対象の条件関係:AND
[待ち条件](job_2に対しての待ち条件)
名前:ジョブ(終了状態)
ジョブID:job_2
値:異常
判定対象の条件関係:AND
[job_4待ち条件タブの設定内容]
判定対象の条件関係:OR
「条件を満たさなければ終了する」にチェックを入れ、終了状態と終了値に以下を設定。
終了状態:正常
終了値:0
[コマンド]
起動コマンド:exit -1
■ ジョブの実行
それでは、実際にジョブを実行して動作を確認していきます。
以下の3つのパターンでジョブを実行し、ジョブネットの終了状態がどのように判定されるかを確認します。
ジョブ1のみが異常終了する場合
ジョブ2のみが異常終了する場合
ジョブ1およびジョブ2の両方が異常終了する場合
● パターン1:ジョブ1のみが異常終了
判定用ジョブが実行し、ジョブネットが異常終了しました。
● パターン2:ジョブ2のみが異常終了
判定用のジョブが実行し、ジョブネットが異常終了しました。
● パターン3:ジョブ1およびジョブ2の両方が異常終了
判定用のジョブが実行し、ジョブネットが異常終了しました。
■おわりに
今回は、Hinemosのジョブ待ち条件機能を活用し、
特定ジョブの異常終了時にジョブネット全体を異常終了させる方法をご紹介しました。
本記事が、Hinemosのジョブ管理の効率化や、より高度なジョブフローの実現にお役立ていただければ幸いです。