4.5.11 実行が終了したジョブネットやジョブを再実行する
実行が終了したジョブネットやジョブの実行結果を指定して,再実行できます。
再実行には,ルートジョブネットの再実行と,ネストジョブネットまたはジョブの再実行の2種類があります。それぞれの方法について説明します。
この操作は,JP1/AJS3 - View,Web GUI(ジョブポータル),再実行APIまたはajsrerunコマンドで実行できます。JP1/AJS3 - Viewでの操作については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド 9.11 ジョブネットやジョブを再実行する」を,Web GUI(ジョブポータル)での操作については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド 15.2.13 [再実行]ダイアログボックス」を,再実行APIで操作する場合は,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 7.1.18 再実行API」を,また,コマンドで操作する場合は,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsrerun」を参照してください。
- 補足事項
-
-
ジョブネットコネクタを使ってルートジョブネットの実行順序を制御している場合の再実行については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(業務設計編) 2.2.4(5) ジョブネットコネクタ・接続先のジョブネットの再実行」を参照してください。
-
待ち合わせ条件を使用してユニットの実行順序を制御している場合の再実行については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(業務設計編) 2.2.5 待ち合わせ条件を使用したユニットの実行順序制御」を参照してください。
-
- 〈この項の構成〉
(1) ルートジョブネットを再実行する
ルートジョブネットを再実行する場合,次の中から再実行方法を選べます。
- 異常終了ジョブから
-
異常終了したジョブから再実行します。異常終了したジョブの前に正常終了したジョブがあっても,正常終了したジョブは再実行しません。
再実行してジョブが正常終了すると,後続ジョブを実行し処理を続行します。
ネストジョブネットが異常終了した場合,ネストジョブネット中の異常終了したジョブから再実行します。
- 異常終了ジョブの次から
-
異常終了したジョブの次のジョブから再実行します。
ネストジョブネットが異常終了した場合,ネストジョブネット中の異常終了したジョブの次のジョブから再実行します。
ただし,関連線で接続されているユニットの中で,最初に異常終了したユニットが,「未実行終了」状態や「繰り越し未実行」状態の場合は,それらのユニットも再実行します。
- 異常終了したジョブネットから
-
異常終了したジョブを直下に含むジョブネットから再実行します。
ネストジョブネット直下に,異常終了したジョブ以外に正常終了したジョブがあっても,ネストジョブネット直下全体とその後続ユニットが再実行されます。ルートジョブネット直下に異常終了したジョブがある場合は,ルートジョブネット全体が再実行されます。
- ジョブネットの先頭から
-
ルートジョブネットの先頭から再実行します。
- 警告終了ジョブだけ
-
警告終了したジョブだけを再実行します。ネストジョブネットを定義している場合,ネストジョブネット中で警告終了となったジョブを再実行します。
また,一度警告終了したあとに再実行して異常終了しているジョブも再実行します。
(2) ネストジョブネットまたはジョブを再実行する
ネストジョブネットやジョブを再実行する場合,次の中から再実行方法を選べます。
- 指定したジョブネットまたはジョブから
-
指定したジョブネットまたはジョブから再実行します。再実行してジョブネットまたはジョブが正常に終了したら,後続ジョブを実行し処理を続行します。
- 指定したジョブネットまたはジョブの次から
-
指定したジョブまたはネストジョブネットの次のジョブから再実行します。
- 指定したジョブネットまたはジョブだけ
-
指定したジョブまたはネストジョブネットだけ再実行します。
次の場合は,再実行してもエラーとなって,再実行できません。
-
再実行しようとしたジョブネットまたはジョブの,上位のルートジョブネットが保留中,開始時刻待ちの場合
-
再実行しようとしたジョブネットまたはジョブが,実行中,異常検出実行中,警告検出実行中,先行終了待ち,開始時刻待ち,保留中,未計画,キューイング,または実行待ちの場合
-
再実行しようとしたジョブネットまたはジョブがリカバリー属性を持ち,先行のジョブネットまたはジョブが正常終了または警告終了している場合
-
再実行しようとしたジョブネットまたはジョブが,判定ジョブ,または判定ジョブの従属ユニットである場合
なお,判定ジョブの従属ユニットは,環境設定パラメーターRERUNSUBORDINATEに「yes」を設定することで,再実行できるようになります。従属ユニットの再実行可否については,「(4) 判定ジョブの従属ユニットを再実行する方法」を参照してください。
-
再実行しようとしたジョブネットまたはジョブの上位ジョブネットにスケジュールがない場合
また,次の場合は再実行してもエラーになりません。ただし,再実行対象のジョブネットまたはジョブは実行されません。
-
再実行対象のジョブが実行中止されていた場合
-
再実行しようとしたジョブネットにスケジュールがなく,上位のジョブネットにスケジュールがある場合
(3) 判定ジョブの先行ジョブが異常終了した場合
判定ジョブの先行ジョブが異常終了した場合,異常終了した先行ジョブを次のように再実行できます。
-
ルートジョブネットを再実行する
-
「異常終了ジョブから」
-
「異常終了ジョブの次から」※1
-
「異常終了ジョブネットから」
-
「先頭から」
-
「警告終了ジョブだけ」※2
-
-
ネストジョブネットまたはジョブを再実行する
-
「このユニットから」(従属ユニットは除く)
-
「このユニットの次から」(従属ユニットは除く)※1
-
「このユニットだけ」(従属ユニットは除く)
-
- 注※1
-
異常終了した先行ジョブの次から再実行した場合の動作
-
判定ジョブの先行ジョブが異常終了したあと,異常終了した先行ジョブの次から再実行すると,異常終了した先行ジョブの状態が「正常終了」に変わり,次の判定ジョブから処理が実行されます。
-
先行ジョブの終了コードを使って判定ジョブの判定処理をする場合は,先行ジョブが異常終了したときの終了コードが使用されます。
-
- 注※2
-
先行ジョブが,警告終了後に再実行によって異常終了している場合です。
(4) 判定ジョブの従属ユニットを再実行する方法
従属ユニットとは,判定ジョブの実行結果によって,実行するかどうかが決まるユニットのことです。判定ジョブに関連づけられている従属ユニットが異常終了した場合の再実行方法は,従属ユニットを再実行するかどうかの設定によって異なります。従属ユニットを再実行するための設定については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 6.2.23 従属ユニットを再実行するための設定」(Windowsの場合)またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド 15.2.21 従属ユニットを再実行するための設定」(UNIXの場合)を参照してください。
- 従属ユニットを再実行しない設定の場合(環境設定パラメーターRERUNSUBORDINATEが「no」の場合)
-
通常のジョブ(PCジョブやUNIXジョブなど)と異なり,従属ユニットは再実行できません。先行する判定ジョブから再実行することもできません。
従属ユニットが異常終了した場合は,上位のジョブネットを選択して再実行してください。
- 従属ユニットを再実行する設定の場合(環境設定パラメーターRERUNSUBORDINATEが「yes」の場合)
-
従属ユニットを再実行できるかどうかは,従属ユニットのユニット種別と状態によって異なります。
従属ユニットを再実行するには,次の条件をすべて満たしている必要があります。
-
JP1/AJS3 - Managerのバージョンが10-00以降
-
条件接続している判定ジョブの判定結果が真
-
条件接続している判定ジョブの状態が「正常終了」
-
従属ユニットのユニット種別が,次の表で「○」になっている
表4‒6 再実行できる従属ユニットのユニット種別 項番
ユニット種別
従属ユニットとして定義されているユニット
従属ジョブネット内に定義されているユニット
1
ジョブグループ
−
−
2
ルートジョブネット
−
−
3
ネストジョブネット
○
○
4
ルートリモートジョブネット
−
−
5
ネストリモートジョブネット
○
○
6
マネージャージョブグループ
−
−
7
マネージャージョブネット
−
−
8
プランニンググループ
−
−
9
標準ジョブ
○
○
10
ジョブネットコネクタ
−
○
11
ORジョブ
−
○
12
判定ジョブ
−
×
13
イベントジョブ
○
○
14
アクションジョブ
○
○
15
カスタムジョブ
○
○
16
引き継ぎ情報設定ジョブ
○
○
17
HTTP接続ジョブ
○
○
18
カスタムイベントジョブ
○
○
- (凡例)
-
○:再実行条件を満たしていれば,再実行できる
×:再実行できない
−:従属ユニットとして定義できない
-
従属ユニットの状態が,次の表で「○」になっている
表4‒7 従属ユニットのユニット種別と状態による再実行可否 項番
状態
従属ユニットのユニット種別
ジョブネット
ジョブ
ジョブネットコネクタ
1
未計画
×
×
×
2
開始時刻待ち
×
−
−
3
先行終了待ち
×
×
×
4
保留中
×
×
−
5
実行待ち
−
×
−
6
キューイング
−
×
−
7
未実行終了
○
○
○
8
未実行終了-W
○
○
−
9
計画未実行
○
○
○
10
実行中
×
×
×
11
異常検出実行中
×
−
×
12
警告検出実行中
×
−
×
13
正常終了
○
○
○
14
正常終了-偽
−
−
−
15
警告検出終了
○
○
○
16
異常検出終了
○
○
○
17
異常検出終了-WR
○
○
−
18
繰り越し未実行
×
−
−
19
順序不正
○
−
−
20
中断
○
−
−
21
強制終了
○
○
○
22
強制終了-WR
○
○
−
23
起動失敗
−
○
−
24
起動失敗-WR
−
○
−
25
終了状態不明
−
○
○
26
終了状態不明-WR
−
○
−
27
閉塞
×
×
×
28
起動条件待ち
−
−
−
29
監視中
−
−
−
30
監視未起動終了
−
−
−
31
監視打ち切り終了
−
−
−
32
監視中断
−
−
−
33
監視正常終了
−
−
−
- (凡例)
-
○:再実行できる
×:再実行できない
−:存在しない状態
-
(5) ジョブネットまたはジョブの再実行の注意事項
ジョブネットまたはジョブの再実行での注意点を次に示します。
-
再実行前の処理が終わっていない場合
指定したジョブから再実行を始め,再実行前に実行を開始していて処理がまだ終わっていないジョブに追い付いた場合,前のジョブが終了してから,再実行によるジョブの実行を開始します。
-
再実行前のジョブの結果情報
ジョブを再実行すると,ジョブの結果情報(実行開始日時,実行終了日時,状態,コード)は再実行した結果に更新されます。標準出力ファイルと標準エラー出力ファイルの情報は,「追加書き」を指定していない場合は再実行した結果に更新されます。ただし,JP1/AJS3が標準エラー出力ファイルに出力するメッセージは,「追加書き」を指定していなくても,追記されることがあります。
-
再実行するジョブネットまたはジョブの先行ジョブの状態変更
先行のジョブネットやジョブが,「異常検出終了」,「中断」,「順序不正」,「強制終了」,「起動失敗」,「終了状態不明」,「繰り越し未実行」,または「未実行終了」状態だった場合,再実行時に状態を「正常終了」,「警告検出終了」,または「計画未実行」状態に強制的に変更します。状態変更の詳細を次の表に示します。
表4‒8 ユニットの状態変更 項番
先行ユニット状態
状態の存在有無※1
先行ユニット状態変更後
ジョブネット
ジョブ
異常状態の先行ユニットを
警告終了にする
ルート
ネスト
する
しない
1
未計画
○
○
○
未計画
未計画
2
開始時刻待ち
○
○
−
開始時刻待ち
開始時刻待ち
3
先行終了待ち
−
○
○
先行終了待ち
先行終了待ち
4
保留中
○
○
○
保留中
保留中
5
実行待ち
−
−
○
実行待ち
実行待ち
6
キューイング
−
−
○
キューイング
キューイング
7
未実行終了[-W]
−
○
○
警告検出終了
計画未実行
8
計画未実行
−
○
○
計画未実行
計画未実行
9
実行中
○
○
○
実行中
実行中
10
警告検出実行中
○
○
−
警告検出実行中
警告検出実行中
11
異常検出実行中
○
○
−
異常検出実行中
異常検出実行中
12
正常終了
○
○
○
正常終了
正常終了
13
警告検出終了
○
○
○
警告検出終了
警告検出終了
14
異常検出終了[-WR]
○
○
○
警告検出終了
正常終了
15
繰り越し未実行
○
○
−
警告検出終了
計画未実行
16
順序不正
○
○
−
警告検出終了
正常終了
17
中断
○
○
−
V5:警告検出終了※2
V6:中断※2
V5:正常終了※2
V6:中断※2
18
強制終了[-WR]
○
○
○
警告検出終了
正常終了
19
起動失敗[-WR]
−
−
○
警告検出終了
正常終了
20
終了状態不明[-WR]
−
−
○
警告検出終了
正常終了
21
閉塞
○
○
○
×
×
22
正常終了 -偽
−
−
○
正常終了 -偽
正常終了 -偽
23
起動条件待ち
○
○※3
−
×
×
24
監視中
○
○※3
−
×
×
25
監視未起動終了
○
○※3
−
×
×
26
監視打ち切り終了
○
○※3
−
×
×
27
監視中断
○
○※3
○※3
×
×
28
監視正常終了
○
○※3
−
×
×
29
開始遅延
○
○
−
※4
※4
30
終了遅延
○
○
○
※4
※4
31
ネスト開始遅延
○
○
−
※4
※4
32
ネスト終了遅延
○
○
−
※4
※4
- (凡例)
-
ルート:ルートジョブネット
ネスト:ネストジョブネット
○:取り得る状態
−:存在しない状態
×:再実行不可(エラーメッセージ出力)
- 注
-
項番1〜6と9〜11は,一度終了した先行ユニットを再実行した場合の状態です。
- 注※1
-
各ユニットがその状態を取ることがあるかどうかを示しています。
- 注※2
-
中断の後続ユニット部分再実行は,環境設定パラメーターVRSHIFT_INTRERUNの設定値(「V5」/「V6」)によって異なります。デフォルトは「V6」です。JP1/AJS3の新規のインストール時および新規のセットアップ時に「V5」が設定されます。表では,それぞれの変更後の状態を示しています。
- 注※3
-
起動条件(.CONDITION)または起動条件中のイベントアイコンだけがこの状態になるため,先行ユニットにはなりません。
- 注※4
-
遅延はユニット状態の付加情報であるため,後続ユニットを再実行しても遅延状態は変わりません。
-
異常検出終了したユニットの後続ユニットを再実行する場合
異常検出終了したユニットの後続ユニットは,リカバリーユニットを除いてすべて「未実行終了」状態に遷移します。この状態遷移は,関連線で接続された順に1ユニットずつ行われます。そのため,異常検出終了したユニットの後続ユニットを再実行する場合,タイミングによっては後続ユニットが「先行終了待ち」状態のまま「未実行終了」状態に遷移しないときがあります。異常検出終了したユニットの後続ユニットを再実行する場合は,後続ユニットがすべて「未実行終了」状態に遷移するのを待ってから実行してください。特に,リカバリーユニットから再実行する場合には注意が必要です。
異常検出終了したユニットに「先行終了待ち」状態の後続ユニットがあるときに後続ユニットを再実行すると,次のようなことが発生するおそれがあります。
-
再実行に失敗する
再実行するユニットがまだ「先行終了待ち」状態であるときに再実行した場合に発生します。
図4‒37 「先行終了待ち」状態のユニットを再実行した場合 再実行しようとしたJobCは「先行終了待ち」状態であるため,再実行できません。JobCが「未実行終了」状態に遷移するのを待ってから再実行してください。
-
指定したユニットだけを再実行した場合に後続ユニットが実行される
「先行終了待ち」状態のユニットが残っているときに「未実行終了」状態のユニットを再実行し,「先行終了待ち」状態のユニットに「異常検出終了」状態の先行ユニットがなくなった場合に発生します。
図4‒38 後続ジョブに「先行終了待ち」状態のユニットが残っている場合 「未実行終了」状態のJobCを再実行すると,JobCは「先行終了待ち」状態に,JobAは「正常終了」状態に,JobBは「計画未実行」状態に遷移します。JobDの先行ユニットに「異常検出終了」状態のユニットがなくなったため,JobDは「未実行終了」状態に遷移しないで,JobCの再実行後に実行されます。
-
異常検出終了したユニットから指定したユニットまでに分岐がある場合に,分岐したユニットが実行される
「先行終了待ち」状態の分岐したユニットが残っているときに「未実行終了」状態のユニットを再実行し,「先行終了待ち」状態の分岐したユニットに「異常検出終了」状態の先行ユニットがなくなった場合に発生します。
図4‒39 分岐したジョブに「先行終了待ち」状態のユニットが残っている場合 「未実行終了」状態のJobCから再実行すると,JobCとJobDは「先行終了待ち」状態に,JobAは「正常終了」状態に,JobBは「計画未実行」状態に遷移します。JobEの先行ユニットに「異常検出終了」状態のユニットがなくなったため,JobEは「未実行終了」状態に遷移しないで,実行されます。
-
複数の異常検出終了した先行ユニットがある場合に,異常検出終了した先行ユニットと再実行で指定したユニットの間にある先行ユニットが実行される
「異常検出終了」状態のユニットから再実行で指定した「未実行終了」状態のユニットの間に「先行終了待ち」状態のユニットが残っているときに,その「未実行終了」状態のユニットを再実行し,「先行終了待ち」状態のユニットに「異常検出終了」状態の先行ユニットがなくなった場合に発生します。
図4‒40 先行ジョブに「先行終了待ち」状態のユニットが残っている場合 「未実行終了」状態のJobCから再実行すると,JobCとJobDは「先行終了待ち」状態に,JobAとJobEは「正常終了」状態に,JobBは「計画未実行」状態に遷移します。JobFの先行ユニットに「異常検出終了」状態のユニットがなくなったため,JobFは「未実行終了」状態に遷移しないで,実行されます。
-
-
多重起動に[不可能]を設定している場合
多重起動に[不可能]を設定しているジョブネットを再実行したときに,別の世代が実行中となっている場合,再実行した世代は開始時刻待ちとなり,実行中世代の終了を待ってから再実行されます。
なお,同様の状況で,多重起動に[可能]を設定している場合はすぐに再実行されます。
-
スケジューリング方式に[スケジュールスキップ]を設定している場合
スケジューリング方式に[スケジュールスキップ]を設定しているジョブネットを再実行し,再実行中に次回開始予定時刻に到達した場合,実行スケジュールはスキップされません。このとき,スキップされなかった実行予定は,多重起動の設定に従って実行されます。スケジュールスキップが有効になるのは,前の実行分が実行スケジュールによって実行され,次回実行予定時刻に到達した場合です。スケジュールスキップの詳細については,「3.3.3(2) スケジューリング方式」を参照してください。
-
判定ジョブの結果でルートジョブネットや先行ユニットを再実行する場合
判定ジョブの結果で,ルートジョブネットや先行ユニットを再実行する場合は注意が必要です。詳細については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(業務設計編) 2.4.3 先行ジョブの結果でそのあとの処理を動的に変える(判定ジョブを使ったジョブネットの定義例)」を参照してください。
(6) リカバリーユニットから再実行する場合の注意事項
異常検出終了になったジョブの後続に接続されているリカバリーユニットが実行中に,異常検出終了したジョブの後続ジョブから再実行すると,実行中のリカバリーユニットに接続されている後続のリカバリーユニットは未実行終了となり実行されません。このような場合は,リカバリー処理をすべて実行してから再実行するようにしてください。
また,リカバリージョブネットの実行中に,異常終了した先行ユニットを指定して「このユニットの次から」のオプションで再実行するなど,実行中だったリカバリージョブネットも再実行対象となるように再実行した場合で,再実行操作によって先行ユニットが異常終了状態ではなくなったときに,リカバリージョブネット配下のユニットが未実行終了となり,リカバリージョブネットが中断することがあります。
リカバリージョブネットを中断にさせずに,異常終了した先行ユニットの後続を再実行したい場合は,後続ユニットを指定して「このユニットから」のオプションで再実行するなど,リカバリージョブネットが再実行対象とならないようにしてください。
なお,リカバリーユニットでajsrerunコマンドを使用して後続ユニットを再実行したい場合,ajsrerunコマンドの-rr,-rnおよび-riオプションを指定することで,対象ユニットが終了状態でない場合に再実行をリトライできます。ajsrerunコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsrerun」を参照してください。
また,リトライするのは,図4-37のように,ajsrerunコマンドに指定したユニットが終了状態でない場合だけです。図4-38,図4-39,図4-40に示すような場合は,ほかのユニットが終了状態に遷移するまでリトライして待つことはできません。リカバリーユニットでajsrerunコマンドを使用して後続ユニットを再実行する場合の定義例については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(業務設計編) 2.4.6 ジョブが異常終了したときに特定の処理を実行する(リカバリーユニットを使ったジョブネットの定義例)」を参照してください。
異常を検出しても後続を実行する場合は,判定ジョブを使って,ジョブの終了コードがしきい値を超えたら従属ユニットでリカバリー処理を実行するような運用を検討してください。
(7) 起動条件付きジョブネットを再実行する場合の注意事項
起動条件の監視が完了して監視中が次の状態になるとき,ルートジョブネット配下のユニットの状態は,「未実行終了」となります。
-
監視未起動終了
-
監視打ち切り終了
-
監視正常終了
「未実行終了」は異常終了として扱われるため,上記の状態の世代を再実行する場合は注意してください。