JP1/Automatic Job Management System 3 設計ガイド(業務設計編)
異なるジョブネット間のユニットの実行順序を制御するには,待ち合わせ条件を使用します。待ち合わせ条件を設定したユニットは,待ち合わせ条件で指定したユニットの実行終了を待ち合わせてから実行を開始します。待ち合わせ条件を使用することで,異なるジョブネット間のユニットの実行順序を制御できます。
待ち合わせ条件を使用する場合,環境設定パラメーターPREWAITUSEで待ち合わせ条件を使用できるように設定しておく必要があります。また,待ち合わせできるユニット種別を拡張する場合は,必要に応じて環境設定パラメーターPREWAITEXTENDを設定します。
待ち合わせ条件を使用したユニットの実行順序制御の概要と,待ち合わせ条件を使用してユニットの実行順序を制御する流れについて説明します。
待ち合わせ条件を設定するユニットの待ち合わせ条件には,実行終了を待ち合わせるユニット名を指定します。ここでいう「実行終了」に該当する状態は,起動条件を使用するかどうか※によって異なります。
待ち合わせ条件で指定したユニットが実行終了すると,待ち合わせ条件を設定したユニットが実行を開始します。
待ち合わせ条件を設定したユニットのことを待ち合わせ条件付きユニット,待ち合わせ条件で指定したユニットのことを待ち合わせ対象ユニットと呼びます。
待ち合わせ条件による実行順序制御を,次の図に示します。
図2-26 待ち合わせ条件による実行順序制御
この例では,ルートジョブネットB配下のジョブ3に待ち合わせ条件を設定しています。待ち合わせ条件には,待ち合わせ対象ユニットとしてルートジョブネットA配下のジョブ2を指定しています。ルートジョブネットAおよびルートジョブネットBを実行すると,ジョブ3はジョブ2の実行終了を待ち合わせます。ジョブ2が実行終了すると,ジョブ3が実行を開始します。
待ち合わせ条件を使うと,さまざまなユニット間の実行順序を制御できます。待ち合わせ条件を設定できるユニット,および待ち合わせ対象ユニットとして指定できるユニットを,次の表に示します。
表2-9 待ち合わせ条件を設定できるユニットおよび待ち合わせ対象ユニットとして指定できるユニット
| 項番 | ユニット種別 | 待ち合わせ条件を設定できるユニット | 待ち合わせ対象ユニットとして指定できるユニット | |
|---|---|---|---|---|
| 1 | ジョブグループ | ジョブグループ自体 | × | × |
| 2 | ジョブグループ直下のジョブ | ○※1 | × | |
| 3 | ルートジョブネット | 起動条件を使用しないルートジョブネット | ○ | ○ |
| 4 | 起動条件を使用しないルートジョブネットの配下のユニット | ○※2 | ○※2 | |
| 5 | 起動条件を使用するルートジョブネット | ○※3 | ○※3 | |
| 6 | 起動条件を使用するルートジョブネットの配下のユニット | ×※2 | ×※2 | |
| 7 | 起動条件(.CONDITION) | × | × | |
| 8 | ネストジョブネット | ○ | ○ | |
| 9 | リモートジョブネット | リモートジョブネット自体 | × | × |
| 10 | リモートジョブネットの配下のユニット | × | × | |
| 11 | プランニンググループ | プランニンググループ自体 | × | ○ |
| 12 | プランニンググループ直下のルートジョブネット | ○ | × | |
| 13 | プランニンググループ直下のルートジョブネットの配下のユニット | ○ | ○※4 | |
| 14 | ホストリンクジョブネット | × | × | |
| 15 | 標準ジョブ | ○ | ○ | |
| 16 | ジョブネットコネクタ | ○ | ○ | |
| 17 | ORジョブ | × | × | |
| 18 | 判定ジョブ | × | × | |
| 19 | イベントジョブ | ジョブネット配下のイベントジョブ | ○ | ○ |
| 20 | 起動条件(.CONDITION)中のイベントジョブ | × | × | |
| 21 | アクションジョブ | ○ | ○ | |
| 22 | カスタムジョブ | ○ | ○ | |
| 23 | 引き継ぎ情報設定ジョブ | ○ | ○ | |
| 24 | オペレーションネット用スケジューラーサービスの配下のユニット(JP1/IM - Planning Operationで管理しているユニット) | × | × | |
| 25 | シナリオ管理グループ | シナリオ管理グループ自体 | × | × |
| 26 | シナリオ管理グループ配下のユニット | × | × | |
なお,待ち合わせ条件は,同一スケジューラーサービス内のユニットの実行順序を制御します。そのため,待ち合わせ条件付きユニットと待ち合わせ対象ユニットは,同一のスケジューラーサービス配下にある必要があります。
待ち合わせ対象ユニットの実行終了を待ち合わせ条件付きユニットが把握できているかどうかを,待ち合わせ状態として表示します。待ち合わせ状態には次の状態があります。
表2-10 待ち合わせ状態一覧
| 項番 | 待ち合わせ状態 | 意味 |
|---|---|---|
| 1 | 未完了 | 待ち合わせ対象ユニットの実行終了の待ち合わせがまだ完了していません。 |
| 2 | 完了 | 待ち合わせ対象ユニットの実行終了の待ち合わせが完了しました。 |
| 3 | 未完了(手動) | 待ち合わせ対象ユニットの実行終了の待ち合わせがまだ完了していません(待ち合わせ条件の有効化によって待ち合わせ状態が未完了に変更されています)。 |
| 4 | 完了(手動) | 待ち合わせ対象ユニットの実行終了の待ち合わせが完了しました(待ち合わせ条件の無効化によって待ち合わせ状態が完了に変更されています)。 |
待ち合わせ状態が「完了」または「完了(手動)」になることで,待ち合わせ条件が成立し,待ち合わせ条件付きユニットが実行を開始します。
待ち合わせ条件付きユニットの動作を設定することができます。詳細については,「2.2.5(4) 待ち合わせ条件付きユニットの動作の設定」を参照してください。
待ち合わせ条件を使ったユニット間の実行順序制御は,次の流れで行います。
待ち合わせ条件付きユニットを実行登録すると,待ち合わせ条件付きユニットは,待ち合わせルールに従って待ち合わせ対象ユニットの実行終了を待ち合わせます。
待ち合わせルールは,次に示す場合で異なります。
それぞれの場合について説明します。
待ち合わせ条件付きユニットと待ち合わせ対象ユニットが同一のルートジョブネット配下にある場合,各ユニットは同一の世代で実行されます。そのため,待ち合わせ条件付きユニットは,同じ世代で実行される待ち合わせ対象ユニットの実行終了を待ち合わせます。
待ち合わせ条件付きユニットと待ち合わせ対象ユニットが同一ルートジョブネット配下にある場合の例を,次の図に示します。
図2-27 待ち合わせ条件付きユニットと待ち合わせ対象ユニットが同一ルートジョブネット配下にある場合の例
この例では,待ち合わせ条件付きユニットのジョブ3と待ち合わせ対象ユニットのネストジョブネット1が,どちらもルートジョブネットAの配下に定義されています。ルートジョブネットAを1日に1回実行するようにスケジュールして実行登録すると,7/1と7/2にルートジョブネットAの実行予定世代が一つずつ生成されます。この場合,ジョブ3は,同一世代で実行するネストジョブネット1の実行終了を待ち合わせます。
待ち合わせ条件付きユニットと待ち合わせ対象ユニットが異なるルートジョブネット配下にある場合,各ルートジョブネットを実行登録すると,それぞれのルートジョブネットに実行予定世代が生成されます。このとき,待ち合わせ条件付きユニットの実行予定世代は,次の条件を満たす待ち合わせ対象ユニットの実行予定世代の実行終了を待ち合わせます。
待ち合わせ対象ユニットが待ち合わせ条件付きユニットと異なるルートジョブネット配下にある場合の例を,次の図に示します。
図2-28 待ち合わせ対象ユニットが待ち合わせ条件付きユニットと異なるルートジョブネット配下にある場合の例
この例では,待ち合わせ条件付きユニットのジョブ1が,待ち合わせ対象ユニットのネストジョブネット1と,異なるルートジョブネットの配下に定義されています。ルートジョブネットAおよびルートジョブネットBが7/1に2回実行するようにスケジュールして実行登録すると,7/1のルートジョブネットAの実行予定として,実行IDが@A101の世代と@A102の世代が生成されます。一方,7/1のルートジョブネットBの実行予定として,実行IDが@A103の世代と@A104の世代が生成されます。ジョブ1の世代@A103および@A104は,実行日が同じで,かつ開始予定時刻の順番が等しいネストジョブネット1の実行予定世代を待ち合わせます。そのため,ジョブ1で1番目に実行される@A103は,ネストジョブネット1で1番目に実行される@A101を待ち合わせます。同様に,ジョブ1で2番目に実行される@A104は,ネストジョブネット1で2番目に実行される@A102を待ち合わせます。7/2に実行されるジョブ1の世代も,7/2の開始予定時刻の順番が等しいネストジョブネット1の実行予定世代を待ち合わせます。
次に,JP1/AJS3の機能と待ち合わせ条件を組み合わせて使用したときの例について説明します。
図2-29 待ち合わせ対象ユニットをジョブネットリリースする例
図2-30 計画一時変更で実行予定世代の開始予定の順番を変更する例
図2-31 48時間制スケジュールを採用している例
待ち合わせ対象ユニットに指定した起動条件付きジョブネットが実行を開始すると,監視世代と実行世代の両方が生成されます。このとき,待ち合わせ条件付きユニットの実行予定世代は,待ち合わせ対象ユニットの監視世代と実行世代の両方が実行終了するのを待ち合わせます。
待ち合わせ条件付きユニットの実行予定世代は,次の条件を満たす待ち合わせ対象ユニットの世代の実行終了を待ち合わせます。
待ち合わせ対象ユニットが起動条件付きジョブネットの例を,次の図に示します。
図2-32 待ち合わせ対象ユニットが起動条件付きジョブネットの例
この例では,待ち合わせ対象ユニットとして起動条件付きジョブネットであるルートジョブネットAが定義されています。ルートジョブネットAの世代@A101と@A102は,それぞれ起動条件を使用する世代です。
ルートジョブネットAおよびルートジョブネットBが7/1に2回実行するようにスケジュールして実行登録すると,7/1のルートジョブネットAの実行予定として,実行IDが@A101の監視世代と@A103の実行世代,および@A102の監視世代と@A107の実行世代が生成されます。
@A101の監視世代が監視中の間に起動条件が成立し,実行世代@A103が実行を開始すると,実行世代@A104が生成されます。そのあと再度起動条件が成立すると,実行世代@A104が実行を開始し,実行世代@A105が生成されます。一方,7/1のルートジョブネットBでは,実行予定として実行IDが@A106および@A110の世代が生成されます。ジョブ1の世代@A106は,実行日が同じで,かつ開始予定の順番が等しいルートジョブネットAの監視世代および実行世代を待ち合わせます。そのため,ジョブ1の世代@A106は,ルートジョブネットAの監視世代@A101および実行世代@A103〜@A105がすべて実行終了するのを待ち合わせます。
同様に,ジョブ1で2番目に実行される世代@A110は,ルートジョブネットAの監視世代@A102および実行世代@A107〜@A109がすべて実行終了するのを待ち合わせます。
起動条件付きジョブネットが実行を開始すると,監視世代と実行世代の両方が生成されます。この場合,待ち合わせ条件付きユニットの監視世代が,待ち合わせ対象ユニットの実行終了を待ち合わせます。
待ち合わせ条件付きユニットの監視世代は,次の条件を満たす待ち合わせ対象ユニットの世代の実行終了を待ち合わせます。なお,待ち合わせ条件付きユニットの実行世代は,待ち合わせを行いません。実行世代は,起動条件が成立したときに実行を開始します。
待ち合わせ条件付きユニットが起動条件付きジョブネットの例を,次の図に示します。
図2-33 待ち合わせ条件付きユニットが起動条件付きジョブネットの例
この例では,待ち合わせ条件付きユニットのルートジョブネットBが,起動条件付きジョブネットとして定義されています。
ルートジョブネットAおよびルートジョブネットBが7/1に2回実行するようにスケジュールして実行登録すると,7/1のルートジョブネットAの実行予定として,実行IDが@A101と@A102の世代が生成されます。一方,7/1のルートジョブネットBの実行予定として,実行IDが@A103の監視世代と@A105の実行世代,および@A104の監視世代と@A108の実行世代が生成されます。監視世代@A103は,実行日が同じで,かつ開始予定の順番が等しいネストジョブネット1の実行予定世代@A101の実行終了を待ち合わせます。
世代@A101が実行終了することで,待ち合わせ条件が成立します。待ち合わせ条件が成立すると,監視世代@A103が起動条件の監視を開始します。そのあと,起動条件が成立して実行世代@A105が実行を開始すると,実行世代@A106が生成されます。再度起動条件が成立すると,実行世代@A106が実行を開始し,実行世代@A107が生成されます。
同様に,ルートジョブネットBの監視世代@A104は,ネストジョブネット1で2番目に実行される世代@A102の実行終了を待ち合わせます。
待ち合わせ対象ユニットにプランニンググループを指定した場合,待ち合わせ条件付きユニットが待ち合わせるユニットは,プランニンググループ配下で実行しているルートジョブネットになります。プランニンググループ配下で実行しているルートジョブネットが切り替わると,待ち合わせ条件付きユニットが待ち合わせるユニットも自動で切り替わります。
待ち合わせ対象ユニットにプランニンググループを指定した場合の例を,次の図に示します。
図2-34 待ち合わせ対象ユニットにプランニンググループを指定した場合の例
この例では,待ち合わせ対象ユニットのプランニンググループPに,6/1〜6/30で実行するルートジョブネットP1と,7/1〜7/31で実行するルートジョブネットP2を定義しています。6/1〜6/30では,ジョブ1はルートジョブネットP1を待ち合わせます。7/1になってプランニンググループ配下で実行するルートジョブネットがルートジョブネットP2に切り替わると,ジョブ1はルートジョブネットP2を待ち合わせます。
待ち合わせ条件が成立するときのユニットの状態遷移を,次の図に示します。
図2-35 待ち合わせ条件成立時のユニットの状態遷移(起動条件を使用しない場合)
待ち合わせ条件付きユニットは,待ち合わせ対象ユニットが「実行中」状態の間,「開始時刻待ち」または「先行終了待ち」状態で待ち合わせ条件の成立を待ちます。どちらの状態になるかは,待ち合わせ条件付きユニットのユニット種別によって異なります。
待ち合わせ条件付きユニットのユニット種別と待ち合わせ条件成立前の状態を,次の表に示します。待ち合わせ条件を設定できるユニット種別については,「(1)(a) 待ち合わせ条件付きユニットと待ち合わせ対象ユニット」を参照してください。
表2-11 待ち合わせ条件付きユニットのユニット種別と待ち合わせ条件成立前の状態
| 項番 | 待ち合わせ条件付きユニットのユニット種別 | 待ち合わせ条件成立前の状態 |
|---|---|---|
| 1 | ルートジョブネット | 開始時刻待ち |
| 2 | ネストジョブネット | 先行終了待ち |
| 3 |
|
先行終了待ち |
待ち合わせ条件付きユニットが「開始時刻待ち」または「先行終了待ち」状態のときに,待ち合わせ対象ユニットが次の状態に遷移すると,待ち合わせ条件が成立します。
待ち合わせ条件が成立すると,待ち合わせ条件付きユニットが「実行中」状態に遷移し,実行を開始します。
なお,待ち合わせ対象ユニットが異常終了すると,待ち合わせ条件付きユニットは「開始時刻待ち」または「先行終了待ち」状態のまま,待ち合わせ条件の成立を待ち続けます。この場合,待ち合わせ対象ユニットの異常の原因を取り除いたあと,待ち合わせ対象ユニットを再実行してください。
待ち合わせ条件が成立するときのユニットの状態遷移を,次の図に示します。
図2-36 待ち合わせ条件成立時のユニットの状態遷移(待ち合わせ対象ユニットが起動条件を使用する場合)
待ち合わせ対象ユニット(起動条件付きジョブネット)の監視世代が「監視中」状態,または実行世代が「実行中」状態の間,待ち合わせ条件付きユニットは「開始時刻待ち」または「先行終了待ち」状態で待ち合わせ条件の成立を待ちます。どちらの状態になるかは,待ち合わせ条件付きユニットのユニット種別によって異なります。待ち合わせ条件成立前の待ち合わせ条件付きユニットの状態については,表2-11を参照してください。
起動条件付きジョブネットが実行終了して待ち合わせ条件が成立すると,待ち合わせ条件付きユニットは「実行中」状態に遷移して実行を開始します。
なお,起動条件付きジョブネットの実行終了とする監視世代および実行世代の状態は,待ち合わせ条件の設定で変更できます。詳細については,「(4)(c) 待ち合わせ対象ユニットに起動条件を使用する場合の,待ち合わせ条件の設定」を参照してください。
待ち合わせ条件が成立するときのユニットの状態遷移を,次の図に示します。
図2-37 待ち合わせ条件成立時のユニットの状態遷移(待ち合わせ条件付きユニットが起動条件を使用する場合)
待ち合わせ対象ユニットが「実行中」状態の間,待ち合わせ条件付きユニット(起動条件付きジョブネット)の監視世代は,「開始時刻待ち」状態で待ち合わせ条件の成立を待ちます。このとき,起動条件で監視するイベントが発生しても,起動条件の監視が開始されていないため,起動条件は成立しません。そのため,実行世代は実行を開始しません。
待ち合わせ条件付きユニットや待ち合わせ対象ユニットを次のように定義していたり操作したりする場合,待ち合わせ条件が成立しても待ち合わせ条件付きユニットが実行されないことがあります。
このような場合での状態遷移の例について説明します。
待ち合わせ条件付きユニットに関連線で接続された先行ユニットがある場合,待ち合わせ条件付きユニットは,先行ユニットが実行終了してから待ち合わせ条件が成立しているかどうかをチェックします。先行ユニットが実行終了しないうちに待ち合わせ条件が成立しても,待ち合わせ条件の成立チェックはされないため,待ち合わせ条件付きユニットは実行を開始しません。
関連線で接続された先行ユニットがある場合の例を,次の図に示します。
図2-38 関連線で接続された先行ユニットがある場合の例
この例では,待ち合わせ条件付きユニットのジョブ2に,待ち合わせ対象ユニットとしてネストジョブネット1が定義されています。また,先行ユニットとしてジョブ1が定義されています。
例1では,ジョブ1が実行終了してからネストジョブネット1が実行終了しています。この場合,ジョブ1が実行終了した時点でジョブ2は待ち合わせ条件の成立チェックを開始します。そのため,ネストジョブネット1が実行終了して待ち合わせ条件が成立すると,ジョブ2は実行を開始します。
例2では,ネストジョブネット1が実行終了してからジョブ1が実行終了しています。この場合,ネストジョブネット1が正常終了しても,ジョブ2は待ち合わせ条件の成立チェックを開始していないため,ジョブ2は実行されません。ジョブ1が正常終了すると,ジョブ2は待ち合わせ条件の成立チェックを開始します。待ち合わせ条件の成立チェック開始時点でネストジョブネット1が正常終了していれば,待ち合わせ条件は成立し,ジョブ2はすぐに実行を開始します。
待ち合わせ条件付きユニットに保留属性を設定している場合,待ち合わせ条件が成立しても,待ち合わせ条件付きユニットの実行は開始されないで保留されます。
保留属性を設定する場合の例を,次の図に示します。
図2-39 保留属性を設定する場合の例
この例では,待ち合わせ条件付きユニットのジョブ1が「先行終了待ち」状態の間に,ジョブ1に保留属性を設定しています。この場合,待ち合わせ条件が成立しても,ジョブ1は実行を開始しないで「保留中」状態に遷移します。保留設定が解除されると,ジョブ1は実行を開始します。
待ち合わせ条件付きユニットを重複して複数回実行する場合,ルートジョブネットの多重起動やスケジューリング方式の設定に従って,待ち合わせ条件が成立しても実行中の世代の終了を待ってから実行されたり,ルートジョブネットの次回実行予定が「繰り越し未実行」となって実行されなかったりすることがあります。
多重起動およびスケジューリング方式の違いによる状態遷移の例を,次の図に示します。
図2-40 多重起動およびスケジューリング方式の違いの例
例1では,待ち合わせ条件付きユニットのルートジョブネットBの詳細定義に,多重起動として「不可能」を,スケジューリング方式として「多重スケジュール」を設定しています。ルートジョブネットBの世代1が「実行中」状態のときにルートジョブネットBを即時実行すると,世代2が生成されて,「開始時刻待ち」状態でルートジョブネットA/ジョブ1の世代2の実行終了を待ち合わせます。ジョブ1の世代2が実行終了して待ち合わせ条件が成立すると,多重起動できないため,ルートジョブネットBの世代2は「開始時刻待ち」状態のままルートジョブネットBの世代1の実行終了を待ちます。そのあと,ルートジョブネットBの世代1が実行終了すると,ルートジョブネットBの世代2は実行を開始します。
例2では,ルートジョブネットBの詳細定義に,多重起動として「不可能」を,スケジューリング方式として「スケジュールスキップ」を設定しています。ルートジョブネットBの世代1が「実行中」状態のときにルートジョブネットBを即時実行すると,世代2が生成されます。しかし,世代1が実行中のため,世代2はスキップされて,「繰り越し未実行」状態に遷移します。そのあと,ルートジョブネットAのジョブ1の世代2が正常終了しても,ルートジョブネットBの世代2は終了しているので,実行を開始しません。
例3では,ルートジョブネットBの詳細定義に,多重起動として「可能」を,スケジューリング方式として「多重スケジュール」を設定しています。ルートジョブネットBの世代1が「実行中」状態のときにルートジョブネットBを即時実行すると,世代2が生成されて,「開始時刻待ち」状態でルートジョブネットA/ジョブ1の世代2の実行終了を待ち合わせます。ジョブ1の世代2が実行終了して待ち合わせ条件が成立すると,ルートジョブネットBの世代2は実行を開始します。
待ち合わせ条件付きユニットまたは待ち合わせ対象ユニットを再実行する場合の,ユニットの状態遷移について説明します。
図2-41 待ち合わせ条件付きユニットを再実行する場合の例
図2-42 待ち合わせ対象ユニットを再実行する場合の例
図2-43 待ち合わせ対象ユニットの後続ユニットを再実行する例
待ち合わせ条件には,待ち合わせ対象ユニット名以外に,次の項目を設定できます。
待ち合わせ条件付きユニットの待ち合わせ方法,および待ち合わせる世代がない場合の待ち合わせ条件付きユニットの動作について,次に説明します。
一つの待ち合わせ条件付きユニットに対して,待ち合わせ対象ユニットを最大で32個指定できます。待ち合わせ対象ユニットを複数指定した場合,待ち合わせ方法として,すべての待ち合わせ対象ユニットの実行終了を待ち合わせるのか,どれか一つの待ち合わせ対象ユニットの実行終了を待ち合わせるのかを設定できます。
待ち合わせ方法は次の二つから選択します。
ANDとORの動作の違いを,次の図に示します。
図2-44 ANDとORの動作の違い
この例では,待ち合わせ条件付きユニットのジョブ1に,待ち合わせ対象ユニットとしてネストジョブネット1およびネストジョブネット2を指定しています。
例1の待ち合わせ方法が「AND」の場合,ネストジョブネット1とネストジョブネット2の両方が実行終了すると,待ち合わせ条件が成立し,ジョブ1が実行を開始します。
例2の待ち合わせ方法が「OR」の場合,ネストジョブネット1が実行終了した時点で待ち合わせ条件が成立し,ジョブ1が実行を開始します。
図2-45 待ち合わせ対象ユニットの数を少なくする例
待ち合わせ条件付きユニットは,「(2) 待ち合わせ条件付きユニットと待ち合わせ対象ユニットの待ち合わせルール」の待ち合わせルールに従って,待ち合わせ対象ユニットの世代の実行終了を待ち合わせます。しかし,待ち合わせ対象ユニットに待ち合わせルールを満たす世代がない場合,待ち合わせ条件付きユニットは,次のどちらかのように動作します。
なお,この設定は,待ち合わせ条件付きユニットと待ち合わせ対象ユニットが異なるルートジョブネット配下にある場合に有効です。待ち合わせ条件付きユニットと待ち合わせ対象ユニットが同じルートジョブネット配下にある場合,両ユニットは同じ世代で実行されるため,待ち合わせ対象ユニットに待ち合わせルールを満たす世代は必ず存在します。
待ち合わせ対象ユニットに待ち合わせる世代がない場合の設定による動作の違いを,次の図に示します。
図2-46 待ち合わせ対象ユニットに待ち合わせる世代がない場合の設定による動作の違い
例1では,待ち合わせ対象ユニットに待ち合わせる世代がない場合の設定を,「実行を開始しない」にしています。待ち合わせ条件付きユニットのジョブ1の上位ユニットであるルートジョブネットBを即時実行すると,ジョブ1の世代が生成されます。このとき,待ち合わせ対象ユニットのネストジョブネット1に世代がないため,ジョブ1は「先行終了待ち」状態に遷移して待ち合わせ条件の成立を待ち続けます。ネストジョブネット1の上位ユニットであるルートジョブネットAを即時実行してネストジョブネット1が正常終了すると,待ち合わせ条件が成立して,ジョブ1が実行を開始します。
例2では,待ち合わせ対象ユニットに待ち合わせる世代がない場合の設定を,「実行を開始する」にしています。ルートジョブネットBを即時実行すると,ジョブ1の世代が生成されます。このとき,待ち合わせ対象ユニットのネストジョブネット1に世代がないため,ジョブ1はすぐに実行を開始します。ジョブ1の実行開始後にネストジョブネット1の上位ユニットであるルートジョブネットAを即時実行して,ネストジョブネット1が実行終了しても,ジョブ1は実行を開始しません。
待ち合わせ対象ユニットに起動条件を使用する場合,待ち合わせ条件の設定を変更することで,待ち合わせ対象ユニットの実行終了とする状態を次のように変更できます。
次に,待ち合わせ条件の設定を変更する例を示します。
待ち合わせ対象ユニットに起動条件を使用する場合に,監視世代の「監視未起動終了」状態への遷移を,監視世代の実行終了とするように設定できます。
待ち合わせ条件の設定にある「監視未起動終了の場合」の設定で,次のどちらかを選択します。
この設定によって,起動条件付きジョブネットの実行終了とする状態は,次のようになります。
表2-12 「監視未起動終了の場合」の設定と,起動条件付きジョブネットの実行終了とする状態
| 実行を開始しない(デフォルト) | 実行を開始する |
|---|---|
|
|
「監視未起動終了の場合」の設定の違いによる,待ち合わせ条件付きユニットの動作の違いを,次の図に示します。
図2-47 「監視未起動終了の場合」の設定の違いによる,待ち合わせ条件付きユニットの動作の違い
例1では,ジョブ1に定義した待ち合わせ条件の「監視未起動終了の場合」の設定を,「実行を開始しない」にしています。待ち合わせ対象ユニットのルートジョブネットAの監視世代が「監視中」状態の間,起動条件が1回も成立しないと,監視世代は「監視未起動終了」状態に遷移します。そのため,待ち合わせ条件付きユニットのジョブ1は「先行終了待ち」状態のまま,待ち合わせ条件の成立を待ち続けます。
例2では,ジョブ1に定義した待ち合わせ条件の「監視未起動終了の場合」の設定を,「実行を開始する」にしています。ルートジョブネットAの監視世代が「監視中」状態の間,起動条件が1回も成立しないと,監視世代は「監視未起動終了」状態に遷移します。この場合,待ち合わせ条件が成立して,待ち合わせ条件付きユニットのジョブ1は実行を開始します。
待ち合わせ対象ユニットに起動条件を使用する場合に,実行世代の「繰り越し未実行」状態,または異常終了を含むすべての終了状態への遷移を,実行世代の実行終了とするように設定できます。
待ち合わせ条件の設定にある「実行世代に異常終了がある場合」の設定で,次のどちらかを選択します。
この設定によって,起動条件付きジョブネットの実行終了とする状態は,次のようになります。
表2-13 「実行世代に異常終了がある場合」の設定と,起動条件付きジョブネットの実行終了とする状態
| 実行を開始しない | 実行を開始する | |
|---|---|---|
| 「繰り越し未実行」状態でも開始しない (デフォルト) |
「繰り越し未実行」状態なら開始する | |
|
|
|
「実行世代に異常終了がある場合」の設定の違いによる,待ち合わせ条件付きユニットの動作の違いを,次の図に示します。
図2-48 「実行世代に異常終了がある場合」の設定の違いによる,待ち合わせ条件付きユニットの動作の違い
例1では,ジョブ1に定義した待ち合わせ条件の「実行世代に異常終了がある場合」の設定を,「実行を開始しない」にしています。実行世代1が正常終了して,実行世代2が異常終了すると,待ち合わせ条件付きユニットのジョブ1は「先行終了待ち」状態のまま,待ち合わせ条件の成立を待ち続けます。
例2では,ジョブ1に定義した待ち合わせ条件の「実行世代に異常終了がある場合」の設定を,「実行を開始しない」にしています。ただし,「繰り越し未実行」状態なら実行を開始する設定にしています。また,ルートジョブネットAは実行世代を滞留させないように設定しています。この場合,実行世代1の実行中に起動条件が成立して実行世代2が「繰り越し未実行」状態に遷移しても,実行世代1が「正常終了」状態に遷移すると待ち合わせ条件が成立します。
例3では,ジョブ1に定義した待ち合わせ条件の「実行世代に異常終了がある場合」の設定を,「実行を開始する」にしています。この場合,実行世代2の実行中に実行世代2を強制終了して「強制終了」状態に遷移させても,待ち合わせ条件が成立します。
待ち合わせ条件で指定した待ち合わせ対象ユニットとの待ち合わせを,一時的に有効/無効に変更できます。
実行終了した待ち合わせ条件付きユニットの待ち合わせを有効にすると,待ち合わせ状態が「未完了(手動)」になります。このユニットを再実行すると,待ち合わせを再開します。また,待ち合わせ対象ユニットの実行終了を待ち合わせている待ち合わせ条件付きユニットの待ち合わせを無効にすると,待ち合わせ状態が「完了(手動)」になります。待ち合わせ方法が「AND」の場合,すべての待ち合わせ状態を「完了(手動)」にすると,待ち合わせ条件付きユニットは実行を開始します。待ち合わせ方法が「OR」の場合,待ち合わせ対象ユニットのどれか一つの待ち合わせ状態を「完了(手動)」に変更すると,待ち合わせ条件付きユニットは実行を開始します。
待ち合わせ条件の有効化/無効化と待ち合わせ状態の関係を,次の図に示します。
図2-49 待ち合わせ条件の有効化/無効化と待ち合わせ状態の関係
待ち合わせ対象ユニットが実行中で,待ち合わせ条件付きユニットが「開始時刻待ち」または「先行終了待ち」状態にあるとき,待ち合わせ状態は「未完了」です。この状態で待ち合わせを無効にすると,待ち合わせ状態は「完了(手動)」になり,待ち合わせ条件付きユニットが実行を開始します。待ち合わせ条件付きユニットの実行終了後,待ち合わせを有効にすると,待ち合わせ状態は「未完了(手動)」に遷移します。この状態で待ち合わせ条件付きユニットを再実行すると,待ち合わせ条件付きユニットは待ち合わせを再開します。そのため,待ち合わせ対象ユニットが正常終了すると,待ち合わせ状態は「完了」に遷移して待ち合わせ条件付きユニットは実行を開始します。
待ち合わせ条件の設定の一時変更は,[待ち合わせ条件の状態一覧]ウィンドウの[操作]−[待ち合わせ]−[待ち合わせ有効化]または[待ち合わせ無効化]を選択することで実行できます。
待ち合わせ条件の設定の一時的な変更については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 4.5.15 ジョブネットやジョブの待ち合わせ条件の設定を一時変更する」を参照してください。
待ち合わせ条件を使用してユニット間の実行順序を制御する場合に,待ち合わせ対象ユニットに対して次のような操作をすると,待ち合わせ条件で実行順序を制御できなくなります。
このことを,待ち合わせ対象ユニットの定義不正といいます。待ち合わせ対象ユニットの定義不正が発生した場合の待ち合わせ条件付きユニットの動作は,待ち合わせ対象ユニットを実行登録しているかどうかと,待ち合わせ対象ユニットがサスペンド中かどうかで異なります。
待ち合わせ対象ユニットの定義不正の例を,次の図に示します。
図2-50 待ち合わせ対象ユニットの定義不正の例
この例では,待ち合わせ対象ユニットにリモートジョブネットを指定しているため,定義不正になっています。リモートジョブネットAを未登録のままルートジョブネットBを実行登録すると,待ち合わせ条件付きユニットのジョブ1は「先行終了待ち」状態で待ち合わせ対象ユニットの実行終了を待ち合わせます。このとき,待ち合わせ対象ユニットが未登録であることを知らせるエラーメッセージが出力されます。そのあと,リモートジョブネットAを実行登録すると,リモートジョブネットAには実行予定世代が生成されますが,ジョブ1は待ち合わせ対象ユニットの定義不正のため異常終了します。
なお,待ち合わせ条件の設定後,待ち合わせ対象ユニットのルートジョブネットやプランニンググループを削除・移動したり名称を変更したりした場合も,待ち合わせ対象ユニットの定義不正です。この場合,待ち合わせ条件付きユニットは実行開始後,すぐに異常終了します。
待ち合わせ方法に「OR」を指定している場合,待ち合わせ対象ユニットの定義不正を検知する前にほかの待ち合わせ対象ユニットが実行終了して待ち合わせ条件が成立すると,待ち合わせ条件付きユニットの実行が開始されます。しかし,待ち合わせ対象ユニットの定義不正を先に検知すると,待ち合わせ条件付きユニットは異常終了します。
JP1/AJS3 - Viewまたはajsshowコマンドを使って待ち合わせ条件付きユニットを定義・監視する場合,次の方法を使うと,待ち合わせ条件付きユニットと待ち合わせ対象ユニットを一覧で確認できます。
図2-51 [待ち合わせ条件の設定一覧]ウィンドウ
図2-52 [待ち合わせ条件の状態一覧]ウィンドウ
[待ち合わせ条件の設定一覧]ウィンドウおよび[待ち合わせ条件の状態一覧]ダイアログボックスの詳細については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド 15. ウィンドウとダイアログボックス」を参照してください。
異なるルートジョブネット同士の実行順序を制御したい場合,待ち合わせ条件を設定したり,ジョブネットコネクタを使用したりして,ユニット同士を連携できます。しかし,JP1/AJS3を運用していく上では,ユニットの監視のしやすさを考慮すると,ジョブネットコネクタの使用を推奨します。待ち合わせ条件は,次に示すように限定された状況だけで使用するようにしてください。
待ち合わせ条件を使用した場合と,ジョブネットコネクタを使用した場合の長所と短所を,次の表に示します。
表2-14 待ち合わせ条件を使用した場合とジョブネットコネクタを使用した場合の長所と短所
| 観点 | 待ち合わせ条件 | ジョブネットコネクタ |
|---|---|---|
| ユニット構成に関する長所と短所 |
|
|
| ユニットの詳細定義に関する長所と短所 |
|
|
| 連携方法の設定に関する長所と短所 |
|
|
| ユニットの監視に関する長所と短所 |
|
|
Copyright (C) 2012, Hitachi, Ltd.
Copyright (C) 2012, Hitachi Solutions, Ltd.