5.9.2 ジョブの打ち切り条件を定義する
#-adsh_job_stopコマンドを使用して,ジョブステップ終了時に,ジョブを打ち切るかどうかを判断する条件を定義します。
- <この項の構成>
- (1) 判定するタイミング
- (2) 有効範囲
- (3) ジョブの打ち切り条件定義の例
(1) 判定するタイミング
ジョブステップ終了時に,終了コードがこの属性で定義されているかを毎回判定します。定義されていれば後続のジョブ定義スクリプトを実行しないでジョブが終了します。
(2) 有効範囲
指定した個所以降のジョブ定義スクリプトの実行で有効になります。また,先行ジョブ定義スクリプトでこのコマンドが指定されている場合,先行ジョブ定義スクリプトの指定はリセットされ,新たに指定した条件だけが有効になります。
指定例を次に示します。
01: #!/opt/jp1as/bin/adshexec
02: #-adsh_job JOB0001
03:
04: #-adsh_step_start STEP1
05: #-adsh_step_end
06:
07: #-adsh_job_stop 4: ←この定義は行09~13の指定が有効範囲
08:
09: #-adsh_step_start STEP2
10: #-adsh_step_end
11:
12: #-adsh_step_start STEP3
13: #-adsh_step_end
14:
15: #-adsh_job_stop 8:16,24:32 ←この定義は行17~18の指定が有効範囲
16:
17: #-adsh_step_start STEP4
18: #-adsh_step_end |
(3) ジョブの打ち切り条件定義の例
#-adsh_job_stopコマンドでジョブの打ち切り条件を定義した場合,次のようになります。
- #-adsh_job_stopコマンドで指定した終了コードで終了しても,ジョブステップ外のコマンドはジョブを中断しません。
- #-adsh_job_stopコマンドで指定した終了コードで終了した場合,ジョブステップはジョブを中断します。
- #-adsh_job_stopコマンドを実行してジョブを中断した場合,後続のジョブステップ外コマンドは実行しません。また,run属性の指定に関係なく後続のジョブステップも実行しません。
実行例を次に示します。
#-adsh_job JOB_STOP
#-adsh_rc_ignore CBLRTN
#-adsh_job_stop 4 ←rc=4でジョブを打ち切るよう指定
echo "Job start."
CBLRTN 004 #rc=4で成功するコマンド ←ジョブステップ外のコマンドがrc=4となるが,
中断しない
#-adsh_step_start STEP01
echo "Step start."
CBLRTN 004 #rc=4で成功するコマンド
#-adsh_step_end ←ジョブステップがrc=4で終了し,中断する
#-adsh_step_start STEP03 -run always ←run属性に関係なく後続ジョブステップを実行しない
echo "command in step"
#-adsh_step_end
echo "Job end." ←後続コマンドを実行しない |