ジョブ実行中にエラーが発生した場合の,後続のコマンド・制御文の動作について説明します。発生するエラーの種類を次に示します。
(1) ジョブステップ外でエラーが発生した場合
ジョブステップ外でエラーが発生した場合の動作を次の表に示します。
表5-39 ジョブステップ外でエラーが発生した場合の動作
発生したエラーの種類 | 後続のコマンド・制御文の動作 |
---|---|
スクリプト拡張コマンドのエラー |
|
シェル標準コマンドのエラー(続行できる場合) |
|
シェル標準コマンドのエラー(続行できない場合) | ジョブ定義スクリプトの実行を終了します。 |
ジョブステップ外でエラーが発生した場合の例を次に示します。
表5-40 ジョブステップ外でエラーが発生した場合の例
ジョブ定義スクリプトのコーディング例 | スクリプト拡張コマンドのエラー | シェル標準コマンドのエラー | |
---|---|---|---|
続行できる場合 | 続行できない場合 | ||
#-adsh_file JOBFILE jobfile | × | - | - |
cmdA | △ | × | - |
shift $n | △ | ○ | × |
cmdB | △ | ○ | △ |
- | - | - | |
#-adsh_step_start NO -run normal | △ | △ | △ |
echo "run normal step" | △ | △ | △ |
cmdNormal | △ | △ | △ |
#-adsh_step_end | △ | △ | △ |
- | - | - | |
#-adsh_step_start AB -run abnormal | ○ | ○ | △ |
echo "run abnormal step" | ○ | ○ | △ |
cmdAbnormal | ○ | ○ | △ |
#-adsh_step_end | ○ | ○ | △ |
- | - | - | |
#-adsh_step_start AL -run always | ○ | ○ | △ |
echo "run always step" | ○ | ○ | △ |
cmdAlways | ○ | ○ | △ |
#-adsh_step_end | ○ | ○ | △ |
(2) ジョブステップ正常ブロック内でエラーが発生した場合
ジョブステップ正常ブロック内でエラーが発生した場合の動作を次の表に示します。
表5-41 ジョブステップ正常ブロック内でエラーが発生した場合の動作
発生したエラーの種類 | 後続のコマンド・制御文の動作 |
---|---|
スクリプト拡張コマンドのエラー シェル標準コマンドのエラー(続行できる場合)※ |
|
シェル標準コマンドのエラー(続行できない場合) | ジョブ定義スクリプトの実行を終了します。 |
ジョブステップ正常ブロック内でエラーが発生した場合の例を,次に示します。
表5-42 ジョブステップ正常ブロック内でエラーが発生した場合の例
ジョブ定義スクリプトのコーディング例 | スクリプト拡張コマンドのエラー | シェル標準コマンドのエラー | ||
---|---|---|---|---|
続行できる場合 | 続行できる場合(onError属性がcontの場合) | 続行できない場合 | ||
#-adsh_step_start S1 -onError stop | - | - | - | - |
#-adsh_file JOBFILE jobfile | × | - | - | - |
cmdA | △ | × | × | - |
shift $n | △ | △ | ○ | × |
cmdB | △ | △ | ○ | △ |
#-adsh_step_error | ○ | ○ | △ | △ |
echo "step error block" | ○ | ○ | △ | △ |
#-adsh_step_end | ○ | ○ | ○ | △ |
- | - | - | - | |
#-adsh_step_start NO -run normal | △ | △ | ○ | △ |
echo "run normal step" | △ | △ | ○ | △ |
cmdNormal | △ | △ | ○ | △ |
#-adsh_step_end | △ | △ | ○ | △ |
- | - | - | - | |
#-adsh_step_start AB -run abnormal | ○ | ○ | △ | △ |
echo "run abnormal step" | ○ | ○ | △ | △ |
cmdAbnormal | ○ | ○ | △ | △ |
#-adsh_step_end | ○ | ○ | △ | △ |
- | - | - | - | |
#-adsh_step_start AL -run always | ○ | ○ | ○ | △ |
echo "run always step" | ○ | ○ | ○ | △ |
cmdAlways | ○ | ○ | ○ | △ |
#-adsh_step_end | ○ | ○ | ○ | △ |
(3) ジョブステップエラーブロック内でエラーが発生した場合
ジョブステップエラーブロック内でエラーが発生した場合の,後続のコマンド・制御文の動作を次の表に示します。
表5-43 ジョブステップエラーブロック内でエラーが発生した場合の動作
発生したエラーの種類 | 後続のコマンド・制御文の動作 |
---|---|
スクリプト拡張コマンドのエラー |
|
シェル標準コマンドのエラー(続行できる場合) |
|
シェル標準コマンドのエラー(続行できない場合) | ジョブ定義スクリプトの実行を終了します。 |
ジョブステップエラーブロック内でエラーが発生した場合の例を,次に示します。
表5-44 ジョブステップエラーブロック内でエラーが発生した場合の例
ジョブ定義スクリプトのコーディング例 | スクリプト拡張コマンドのエラー | シェル標準コマンドのエラー | |
---|---|---|---|
続行できる場合 | 続行できない場合 | ||
#-adsh_step_start S1 -onError stop | - | - | - |
echo "step normal block" | - | - | - |
#-adsh_step_error | - | - | - |
#-adsh_file JOBFILE jobfile | × | - | - |
cmdA | △ | × | - |
shift $n | △ | ○ | × |
cmdB | △ | ○ | △ |
#-adsh_step_end | ○ | ○ | △ |
- | - | - | |
#-adsh_step_start NO -run normal | △ | △ | △ |
echo "run normal step" | △ | △ | △ |
cmdNormal | △ | △ | △ |
#-adsh_step_end | △ | △ | △ |
- | - | - | |
#-adsh_step_start AB -run abnormal | ○ | ○ | △ |
echo "run abnormal step" | ○ | ○ | △ |
cmdAbnormal | ○ | ○ | △ |
#-adsh_step_end | ○ | ○ | △ |
- | - | - | |
#-adsh_step_start AL -run always | ○ | ○ | △ |
echo "run always step" | ○ | ○ | △ |
cmdAlways | ○ | ○ | △ |
#-adsh_step_end | ○ | ○ | △ |
(4) 注意事項
ジョブステップ外で続行できるシェル標準コマンドのエラーが発生した場合,run属性がnormalのジョブステップを除き,後続のコマンド・制御文をすべて実行します。この場合,ジョブの終了コードも後続のコマンド・制御文の終了コードで上書きされます。エラーの要因となった終了コードをジョブの終了コードに反映したい場合(JP1/AJSでジョブをエラーとしたい場合など)は,onError属性にstopを指定したジョブステップ内にコマンド・制御文を記述してください。