Hitachi

uCosminexus Batch Job Execution Server 使用の手引


3.6.2 条件付き実行

〈この項の構成〉

(1) JOB要素でCOND属性を指定した場合

ジョブ内の各ジョブステップの終了時点で,各ジョブステップが生成する終了コードとJOB要素のCOND属性で指定した演算符号を基に論理演算をする。

JOB要素のCOND属性で終了コードの判定条件を指定した場合の流れの例を次の図に示す。

図3‒7 JOB要素のCOND属性で終了コードの判定条件を指定した場合の流れの例

[図データ]

図3-7は,「ジョブ中のどれかのステップの終了コードが0以外である」という条件(下線部の「0,NE」指定)を満たした時点で,後続のジョブステップをすべて実行しないでジョブを終了する例である。

(2) EXEC要素のCOND属性で終了コードの判定条件を指定した場合

EXEC要素のCOND属性で指定したジョブステップの実行開始時点で,次に示す処理をする。

(a) 先行するジョブステップ名を指定しない場合

設定ファイルのEXEC_COND_NOSTEPNAMEパラメータにSTEPALLを指定するか,またはEXEC_COND_NOSTEPNAMEパラメータを指定していない場合,先行するジョブステップが生成するすべての終了コードとEXEC要素のCOND属性で指定した演算符号を基に論理演算をする。また,設定ファイルのEXEC_COND_NOSTEPNAMEパラメータにSTEPLASTを指定した場合,最後に実行されたジョブステップが生成する終了コードだけと論理演算をする。

  • 論理演算結果が真の場合

    そのジョブステップの実行をスキップして,後続するジョブステップの処理へ移る。

  • 論理演算結果が偽の場合

    そのジョブステップを実行する。

(b) 先行するジョブステップ名を指定した場合

指定した先行するジョブステップが生成する終了コードとEXEC要素のCOND属性で指定した演算符号を基に論理演算をする。論理演算結果の後処理は,(a)と同じである。

また,指定した先行するジョブステップが条件付き実行によって実行がスキップされている場合は,EXEC要素のCOND属性は無視される(COND属性が指定されなかったものとして処理される)。ジョブ内で重複しているジョブステップ名を指定した場合,最初に一致したジョブステップに対して論理演算をする。

EXEC要素のCOND属性で終了コードの判定条件を指定した場合の流れの例を次の図に示す。

図3‒8 EXEC要素のCOND属性で終了コードの判定条件を指定した場合の流れの例

[図データ]

図3-8は,STEP2を実行する前に「STEP1の終了コードが0以外」という条件(下線部の「0,NE,STEP1」指定)をチェックし,条件を満たした場合にはSTEP2を実行しないで,その次のステップSTEP3を実行する例である。

(3) EXEC要素のCOND属性でEVENまたはONLYを指定した場合

EXEC要素のCOND属性を指定したジョブステップの実行開始時点で,次に示す処理をする。

EXEC要素のCOND属性でEVENを指定した場合の流れの例を次の図に示す。

図3‒9 EXEC要素のCOND属性でEVENを指定した場合の流れの例

[図データ]

図3-9は,仮にSTEP1のプログラム MYPROG1 が異常終了した場合でも,COND="EVEN"指定(下線部)によってSTEP2は必ず実行される例である。

EXEC要素のCOND属性でONLYを指定した場合の流れの例を次の図に示す。

図3‒10 EXEC要素のCOND属性でONLYを指定した場合の流れの例

[図データ]

図3-10は,STEP1のプログラム MYPROG1が異常終了した場合にだけ,COND="ONLY"指定(下線部)によってSTEP2が実行される例である。

ジョブステップの条件付きの実行を次の図に示す。

図3‒11 スキップされたジョブステップの判定例

[図データ]

ジョブステップ2がジョブステップ1の終了コード判定でスキップされるケースがある。この場合,ジョブステップ3でジョブステップ2の終了コードの条件判定をしているが,ジョブステップ2をスキップしているとき,EXEC要素のCOND属性の指定は無視して,ジョブステップ3を実行する。

図3‒12 先行するすべてのジョブステップの終了コードとの判定例

[図データ]

条件1(COND属性の(6,LT,STEP4))を判定したが,この条件を満たさないため条件2(COND属性の(5,LT))の判定をする。条件2の場合,ジョブステップ名がないためすべての先行するジョブステップの終了コードとの判定をするが,この場合も条件を満たさないためジョブステップ5を実行する。