[CentOS6][SOS JobScheduler] 単独ジョブの異常時に自動的にリトライする


Create: 2013/02/26
LastUpdate: 2013/03/27
[ メニューに戻る ]

下図の環境で単独ジョブをHost-Aで実行してみます。
環境の詳細を知りたい場合は、メニューに戻って構築手順を参照してください。


ここでは、JOB1(上図)を StandaloneJob で作成します。このStandaloneJobを、わざと異常終了させて、自動的に規定回数のリトライ実行をしてみます。
手順については、「JobScheduler QuickStart (PDF)」を参考にしました。
JOEを使用して StandaloneJob の定義とリトライ設定を行い、JOCを使用して StandaloneJob の計画実行(即時)と結果の確認を行います。
JOEの環境(ホットフォルダなど)は、「 [CentOS6][SOS JobScheduler] Host-Aで単独ジョブを即時実行する」で作成したものを流用します。

1.ジョブの定義


まず、「 [CentOS6][SOS JobScheduler] Host-Aで単独ジョブを即時実行する」と同じ手順で "setback_job" を作成します。
今回は、必ず異常終了するようにしたいので、スクリプトを修正して、"exit 5" で終了するようにします。


2.異常時リトライ設定


[Options]タブをクリックして、[Stop On Error] のチェックを外します。
[Step On Error]は、デフォルトでチェックされていますが、ここをチェックしていると、異常終了後はスケジューリングされないようSTOPします。
なので、このチェックを外さないと、異常終了で直ちにSTOPしてしまいリトライのスケジューリングがされません。


[onError]タブをクリックして異常時のリトライ実行を以下のように設定します。
  • 1回目のエラーは、10 秒待機してから、リトライ
  • 2回目のエラーは、20 秒待機してから、リトライ
  • 3回目のエラーは、終了
まず、1回目と2回目のリトライを定義します。
[New Delay]ボタンをクリックして、[Error Count]、[Delay] を入力し、[Apply Delay]ボタンで確定します。


3回目のエラーは、[Stop] を選択します。


下図のように定義が完了したら、[フロッピーアイコン]をクリックして保存します。


3.ジョブの計画実行と実行結果確認


下図のようにブラウザで JOC を開いて、"setback_job" を右クリックします。
メニューから、[Start task at] を選択します。


下図のポップアップが表示されたら、[submit] をクリックして計画実行(即時)するようにスケジューリングします。


下図は、ジョブが異常終了して、1回目のリトライがスケジューリングされたところです。


下図は、3回目のエラーで終了したところです。


ジョブの実行結果は下図のとおりです。




■ 補足

ジョブが異常終了してSTOPした場合、
STOPを解除して続行するには、ジョブを右クリックしてメニューから、[Unstop]を選択します。


下図のように、STOP が解除されます。