4.5.17 ジョブネットの実行登録を解除しないでジョブネットやジョブの定義を変更する
実行登録中のルートジョブネットの下位にあるジョブネットやジョブの定義を変更するとき,ジョブネットを登録解除しないで定義を変更できます。
ルートジョブネットを登録解除しないで定義を変更するには,サスペンドという機能を使います。サスペンドとは,指定したルートジョブネットの全世代にわたってユニットの実行を抑止することです。サスペンドされると,ユニットは新たに実行されません。ただし,すでに実行状態にあるユニットの処理は続行されます。
サスペンドは,実行登録中のルートジョブネットの下位定義を変更する場合に,定義処理と実行制御処理のすれ違いなどの誤動作が起きることを防ぎます。ルートジョブネットをサスペンドすることで,実行制御処理と同期を取って定義を変更できます。
サスペンドは,JP1/AJS3 - Viewまたはajssuspendコマンドで実行できます。JP1/AJS3 - Viewでの操作については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド 9.13 実行登録中のジョブネットをサスペンドして下位定義を変更する」を参照してください。コマンドでの操作については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajssuspend」を参照してください。
- 〈この項の構成〉
(1) 実行登録中の定義変更
ルートジョブネットをサスペンドした状態で,ルートジョブネットの下位定義を変更できます。
実行登録中に定義を変更するには,次の前提条件があります。
-
ルートジョブネットがサスペンドされている
-
ほかで排他編集されていない
(a) 実行登録中に変更できる定義
ルートジョブネットの実行登録中に実行できる定義変更と,実行できない定義変更を次に示します。
- 実行できる定義変更
-
-
新しいユニットの追加
-
既存の定義の変更
-
待ち合わせ条件の変更
-
既存のユニットの削除
-
マップサイズの変更
-
起動条件の追加
-
起動条件の削除
また,リモートジョブネットの下にあるユニットは,実行登録中に定義を変更できます。
-
- 実行できない定義変更
-
-
既存ユニットの名称変更
ただし,サスペンド中に追加したユニットの名称は変更できます。
-
ユニットの移動
移動元のユニットをコピーして移動先に貼り付けてから,移動元のユニットを削除してください。
-
実行中のユニットの削除
-
ルートジョブネットの実行登録中に実行できる定義変更のそれぞれについて,編集できる内容の詳細と注意事項を説明します。
- 新しいユニットの追加
-
新しいユニットを追加できます。追加したユニットのサスペンド中の状態は,1階層上位のジョブネットの状態に依存します。追加したユニットの1階層上位にあるユニットの状態と追加したユニットの状態を,次の表に示します。
表4‒10 サスペンド中に追加されたユニットの状態 追加したユニットの1階層上位にあるユニットの状態
追加したユニットの状態
待ち状態
未計画
実行中状態
未計画
終了状態
計画未実行
- 既存の定義の変更
-
既存の定義を変更できます。ただし,次の点に注意してください。
-
既存のユニットの名称は変更できません。
サスペンド中に追加したユニットの名称は変更できます。
-
実行中のユニット定義の変更はできますが,削除はできません。
-
既存の定義を変更しても,過去の実行結果は保持されます。
-
既存の定義を変更した場合,過去に実行されたときの構成と異なる場合があるため,再実行するときは注意してください。
-
[デイリースケジュール]ウィンドウおよび[マンスリースケジュール]ウィンドウに表示される,計画実行登録したジョブネットの擬似予定については,ジョブネットがサスペンド中でも,変更後の定義情報から算出した予定が表示されます。
-
- 待ち合わせ条件の変更
-
待ち合わせ条件を変更できます。ただし,次の点に注意してください。
-
「実行中」状態の待ち合わせ条件付きユニットをサスペンドして待ち合わせ条件を変更しても,サスペンドの解除後は変更前の待ち合わせ条件の内容で実行が継続されます。
-
待ち合わせ条件付きユニットのサスペンド中に,待ち合わせ対象ユニットが実行終了しても,待ち合わせ条件は成立しません。待ち合わせ条件付きユニットのサスペンドを解除した時点で待ち合わせ対象ユニットが実行終了していれば,その時点で待ち合わせ条件が成立します。
-
待ち合わせ対象ユニットがサスペンド中の場合,待ち合わせ対象ユニットが定義不正でも,待ち合わせ条件付きユニットは異常終了しません。サスペンドを解除した時点で待ち合わせ対象ユニットが定義不正であると,待ち合わせ条件付きユニットは異常終了します。
-
- 既存のユニットの削除
-
既存のユニットを削除できます。ただし,次の点に注意してください。
-
既存のユニットを削除すると,過去の実行結果も削除され,過去の実行結果は表示されなくなります。過去の履歴情報が必要な場合は,スケジューラーログ情報を参照するか,ajsshowコマンドなどで情報を保存してから,ユニットを削除してください。ajsshowコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsshow」を参照してください。
-
既存のユニットを削除した場合,過去に実行されたときの構成と異なるため,再実行するときは注意してください。
-
- マップサイズの変更
-
ジョブネットの状態に関係なく,マップサイズを変更できます。
- 起動条件の追加
-
起動条件を使用する場合,まず起動条件(.CONDITION)を作成し,そのスケジュールをスケジュールルールに設定するか,計画一時変更で設定します。ただし,実行登録の方法によってスケジュールの再計算方法が異なるため,登録方法によって,追加された起動条件が有効になるタイミングが異なります。
起動条件が有効になるタイミングは,次のとおりです。
-
即時実行登録の場合
追加した起動条件は,サスペンドを解除したあとに作成される世代から有効になります。サスペンド前に作成された世代では,有効になりません。
サスペンド前に作成された世代の起動条件を有効にするには,次のどちらかの方法で起動条件を追加してください。
・ジョブネットを登録解除して,起動条件を追加したあとに,再度実行登録する。
・保留中の世代が存在する状態でサスペンドして,起動条件を追加してからサスペンドを解除したあと,サスペンド前に作成された世代に対して,ajsplanコマンドで起動条件を有効にする。
-
計画実行登録の場合
追加した起動条件は次回実行予定世代から有効になります。
-
期間を指定した確定実行登録の場合
追加した起動条件は,サスペンドを解除したあとに作成される世代から有効になります。サスペンド前に作成された世代では,有効になりません。
起動条件を有効にするには,次のどちらかの方法で起動条件を追加してください。
・ジョブネットを登録解除して,起動条件を追加したあとに,再度実行登録する。
・起動条件を追加してサスペンドを解除したあと,サスペンド前に作成された世代に対して,ajsplanコマンドで起動条件を有効にする。
-
未来世代数を指定した確定実行登録の場合
追加した起動条件は,サスペンドを解除したあとに作成される世代から有効になります。サスペンド前に作成された世代では,有効になりません。
サスペンド前に作成された世代の起動条件を有効にするには,次のどちらかの方法で起動条件を追加してください。
・ジョブネットを登録解除して,起動条件を追加したあとに,再度実行登録する。
・起動条件を追加してサスペンドを解除したあと,サスペンド前に作成された世代に対して,ajsplanコマンドで起動条件を有効にする。
なお,ルートジョブネットに起動条件を追加すると,サスペンド解除時にエラーが発生します。
ajsplanコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsplan」を参照してください。
-
- 起動条件の削除
-
定義されている起動条件(.CONDITION)を削除できます。ただし,実行登録の方法によってスケジュールの再計算方法が異なるため,登録方法によっては起動条件を削除できない場合もあります。起動条件を削除できない場合,起動条件を無効にすることができます。
起動条件が削除される,または無効になるタイミングは,次のとおりです。
-
即時実行登録の場合
起動条件を削除すると,起動条件は,サスペンドを解除したあとに作成される世代からは削除されます。サスペンド前に作成された世代では,起動条件は削除されないで,監視世代が「監視打ち切り終了」状態になります。
サスペンド前に作成された世代の起動条件は,削除できませんが,無効にすることはできます。起動条件を無効にするには,保留中の世代が存在する状態でサスペンドして,起動条件を削除してからサスペンドを解除したあとに,ajsplanコマンドで起動条件を無効にしてください。
-
計画実行登録の場合
次回実行予定世代から起動条件が無効になります。
-
期間を指定した確定実行登録の場合
起動条件を削除すると,起動条件は,サスペンドを解除したあとに作成される世代からは削除されます。サスペンド前に作成された世代では,起動条件は削除されないで,監視世代が「監視打ち切り終了」状態になります。
サスペンド前に作成された世代の起動条件を削除,または無効にする場合,次のどちらかの操作を実行してください。
・ジョブネットを登録解除して,起動条件を削除したあとに,再度実行登録する。
・起動条件を削除してサスペンドを解除したあと,サスペンド前に作成された世代に対して,ajsplanコマンドで起動条件を無効にする。
-
未来世代数を指定した確定実行登録の場合
起動条件を削除すると,起動条件は,サスペンドを解除したあとに作成される世代からは削除されます。サスペンド前に作成された世代では,起動条件は削除されないで,監視世代が「監視打ち切り終了」状態になります。
サスペンド前に作成された世代の起動条件を削除,または無効にする場合,次のどちらかの操作を実行してください。
・ジョブネットを登録解除して,起動条件を削除したあとに,再度実行登録する。
・起動条件を削除してサスペンドを解除したあと,サスペンド前に作成された世代に対して,ajsplanコマンドで起動条件を無効にする。
ajsplanコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsplan」を参照してください。
-
実行登録中に定義を編集した場合,過去の実行結果,実行中および未来予定のすべての世代で定義編集が反映されます。例えば,定義を編集したあとに,過去の履歴を[ジョブネットモニタ]ウィンドウに表示すると,定義編集後のジョブネットの状態が表示されます。
(b) ユニットの種類や状態による変更の可否
実行登録中に変更できる定義は,ユニットの種類や状態によって異なります。
各ユニットで変更できる定義を,次の表に示します。
編集操作 |
ユニット |
|||
---|---|---|---|---|
ジョブ |
ジョブネット |
|||
ユニット編集 |
ユニットの追加 |
○ |
○ |
|
ユニットの削除 |
実行中ユニット |
× |
× |
|
実行中でないユニット |
○ |
○ |
||
関連線の編集 |
関連線の追加 |
○ |
○ |
|
関連線の削除 |
○ |
○ |
||
待ち合わせ条件の編集 |
待ち合わせ対象ユニット |
追加 |
○※1 |
○※1 |
削除 |
○※1 |
○※1 |
||
待ち合わせ方法 |
○※1 |
○※1 |
||
待ち合わせる世代がない場合の動作 |
○※1 |
○※1 |
||
ユニットの情報編集 |
ユニット名の変更 |
追加ユニット |
○ |
○ |
既存ユニット |
× |
× |
||
コメントの変更 |
○ |
○ |
||
実行ホストの変更 |
○ |
○ |
||
定義の変更 |
○ |
○ |
||
転送ファイルの変更 |
○ |
− |
||
属性の 変更 |
種別 |
○※1,※2 |
○※1,※2 |
|
種別以外 |
○ |
○ |
||
その他 |
マップサイズの変更 |
− |
○ |
- (凡例)
-
○:編集できる。
×:編集できない。
−:該当しない。
- 注※1
-
サスペンド中に編集できます。
- 注※2
-
JP1/AJS3 - Viewからだけ編集できます。
また,編集の対象になっているユニットの状態によって,できる編集操作とできない編集操作があります。定義編集でできる操作とできない操作を,編集対象になっているユニットの状態ごとに,次の表以降に示します。
編集操作 |
ユニットの状態 |
||||
---|---|---|---|---|---|
先行終了待ち,または開始時刻待ち |
実行中 |
終了状態 |
|||
ユニット編集 |
ユニットの追加 |
− |
− |
− |
|
ユニットの削除 |
○ |
× |
○ |
||
関連線の編集 |
関連線の追加 |
○ |
○ |
○ |
|
関連線の削除 |
○ |
○ |
○ |
||
待ち合わせ条件の編集 |
待ち合わせ対象ユニット |
追加 |
○※1 |
○※1 |
○※1 |
削除 |
○※1 |
○※1 |
○※1 |
||
待ち合わせ方法 |
○※1 |
○※1 |
○※1 |
||
待ち合わせる世代がない場合の動作 |
○※1 |
○※1 |
○※1 |
||
ユニットの情報編集 |
ユニット名の変更 |
追加ユニット |
○ |
− |
○ |
既存ユニット |
× |
× |
× |
||
コメントの変更 |
○ |
○ |
○ |
||
実行ホストの変更 |
○ |
○ |
○ |
||
定義の変更 |
○ |
○ |
○ |
||
転送ファイルの変更 |
○ |
○ |
○ |
||
属性の変更 |
種別 |
○※1,※2 |
× |
○※1,※2 |
|
種別以外 |
○ |
○ |
○ |
||
その他 |
マップサイズの変更 (ジョブネット) |
○ |
○ |
○ |
- (凡例)
-
○:編集できる。
×:編集できない。
−:該当しない。
- 注※1
-
サスペンド中に編集できます。
- 注※2
-
JP1/AJS3 - Viewからだけ編集できます。
編集操作 |
起動条件の状態 |
|||||
---|---|---|---|---|---|---|
起動条件なし |
先行終了待ち |
監視中 |
終了状態 |
|||
起動条件 |
起動条件の設定 |
○ |
− |
− |
− |
|
起動条件の削除 |
− |
○ |
− |
○ |
||
ユニット編集 |
ユニットの追加 |
○ |
○ |
− |
○ |
|
ユニットの削除 |
○ |
○ |
− |
○ |
||
ユニットの情報編集 |
ユニット名の変更 |
追加ユニット |
○ |
○ |
− |
○ |
既存ユニット |
− |
× |
− |
× |
||
コメントの変更 |
○ |
○ |
− |
○ |
||
実行ホストの変更 |
○ |
○ |
− |
○ |
||
定義の変更 |
○ |
○ |
− |
○ |
||
属性の変更 |
○ |
○ |
− |
○ |
||
その他 |
マップサイズの変更 |
○ |
○ |
− |
○ |
- (凡例)
-
○:編集できる。
×:編集できない。
−:該当しない。
(2) 定義変更の手順
実行登録中のルートジョブネットの下位にある定義を変更する手順を説明します。
(a) 定義変更の基本手順
実行登録中のルートジョブネットの下位にある定義を変更する基本の手順を,次に示します。
-
実行登録中のルートジョブネットをサスペンドする。
-
ルートジョブネットの下位にある定義を編集する。
-
サスペンドを解除する。
起動条件監視中の定義を変更する場合は,ルートジョブネットをサスペンドする前に,起動条件監視ジョブを強制終了させてください。起動条件監視中の定義変更の手順を次に示します。
-
起動条件監視ジョブを強制終了させる。
-
ルートジョブネットをサスペンドする。
-
定義を編集する。
-
サスペンドを解除する。
-
スケジュール追加でルートジョブネットを実行する。
(b) サスペンドを有効にする
サスペンドを実行する場合は,前もってajssetupコマンドを実行してサスペンド機能を有効にしておく必要があります。ajssetupコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 2. セットアップコマンド ajssetup」を参照してください。
サスペンド機能を有効にするには,次のようにコマンドを実行します。
ajssetup -F スケジューラーサービス名 -m
サスペンド機能を有効にする場合,JP1/AJS3サービスおよびスケジューラーサービスの停止は不要です。また,設定は即時有効となります。ただし,JP1/AJS3 - Viewからの操作は,サスペンド機能を有効にしたあとのログインからできます。
- 注意事項
-
ajssetup -mコマンドでいったんサスペンド機能を有効にすると,設定を元に戻すことはできません。
(3) サスペンドの操作
(a) サスペンドを実行する
ルートジョブネットのサスペンドは,[JP1/AJS3 - View]ウィンドウ,またはコマンドで実行します。
- サスペンドの前提条件
-
ルートジョブネットをサスペンドするための前提条件は,次のとおりです。
-
JP1/AJS3サービスが起動されている
-
起動条件監視中の世代が存在しない(起動条件の状態が,待ち状態または終了状態)
-
実行ユーザーが操作権限を持っている
-
- [JP1/AJS3 - View]ウィンドウでサスペンドを実行する場合
-
[JP1/AJS3 - View]ウィンドウの[操作]メニューから[サスペンド]−[サスペンド実行]を選択します。
- コマンドでサスペンドを実行する場合
-
ajssuspendコマンドに-Sオプションを指定して実行します。
サスペンドの実行時には,実行中のユニットがあった場合にサスペンドするかどうかを指示できます。
(b) サスペンド状態かどうかを確認する
ルートジョブネットがサスペンド状態かどうかは,[JP1/AJS3 - View]ウィンドウ,またはコマンドで確認できます。
- [JP1/AJS3 - View]ウィンドウで確認する場合
-
[JP1/AJS3 - View]ウィンドウのリストエリアに,サスペンド状態を示すアイコンが表示されます。
- コマンドで確認する場合
-
ajsshowコマンドに-iオプションと2バイトフォーマット指示子%SPを指定して実行します。
コマンドの指定形式を次に示します。
ajsshow -i %SP
コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 3. 通常の運用で使用するコマンド ajsshow」を参照してください。
(c) サスペンドを解除する
ルートジョブネットのサスペンド解除は,[JP1/AJS3 - View]ウィンドウ,またはコマンドで実行します。
- サスペンド解除の前提条件
-
サスペンドを解除するための前提条件は,次のとおりです。
-
JP1/AJS3サービスが起動されている。
-
実行ユーザーが操作権限を持っている。
-
ほかで排他編集されていない。
-
- [JP1/AJS3 - View]ウィンドウでサスペンドを解除する場合
-
[JP1/AJS3 - View]ウィンドウの[操作]メニューから[サスペンド]−[サスペンド解除]を選択します。
- コマンドでサスペンドを解除する場合
-
ajssuspendコマンドに-C オプションを指定して実行します。
また,JP1/AJS3サービスをコールドスタートすると,自動的にサスペンドが解除され,実行登録も自動的に解除されます。
(d) サスペンド解除後の追加ユニットの動作
サスペンドの解除時には,実行中のジョブネットの直下に追加したユニットの動作を指定できます。ただし,リモートジョブネットに追加されたユニットの場合は,指定は無効です。
指定できるオプションは,次の三つです。指定できるオプションと,サスペンド解除後のユニットの動作を次に説明します。
- 実行する
-
追加したユニットを実行します。
サスペンドを解除すると,実行中のジョブネットの直下に追加したユニットは,先行終了待ち状態になり,先行ユニットが終了してから実行されます。サスペンドを解除したときに,すべての先行ユニットが正常終了している場合は,すぐに実行されます。
オプションを何も指定しないでコマンドを実行した場合,このオプションが仮定されます。
- 実行しない(実行中止)
-
追加したユニットの実行を中止します。
サスペンドを解除すると,実行中のジョブネットの直下に追加したユニットの実行が中止され,計画未実行状態になります。
- 保留する
-
追加したユニットを一時変更による保留状態にします。
サスペンドを解除すると,実行中のジョブネットの直下に追加したユニットは,一時変更による保留状態になります。
オプションを指定してサスペンドを解除したときの追加ユニットの状態は,追加したユニットの1階層上位にあるユニットの状態によって異なります。上位ユニットの状態と追加ユニットの状態の関係を,次の表に示します。
追加ユニットの1階層上位にあるユニットの状態 |
オプションの種類 |
||
---|---|---|---|
実行する,またはオプション指定なし |
実行しない (実行中止) |
保留する |
|
実行状態 |
先行終了待ち (先行ユニットが正常終了した場合は実行中) |
計画未実行 |
先行終了待ち (先行ユニットが正常終了した場合は保留中) |
待ち状態 |
先行終了待ち |
先行終了待ち |
先行終了待ち |
終了状態 |
計画未実行 |
計画未実行 |
計画未実行 |
- 注意事項
-
サスペンド中に追加したユニットが計画未実行になる場合,そのユニットは計画一時変更の実行中止状態になります。再実行などで実行する必要がある場合には,実行する前に,計画一時変更の変更解除,または日時変更(ユニットがジョブネットの場合だけ)で実行スケジュールを追加しておいてください。
(4) サスペンド中のジョブやジョブネットの状態遷移
(a) サスペンド中のジョブの状態遷移
サスペンド中のジョブの状態遷移について,次に説明します。
-
サスペンドした時点ですでに実行中のジョブは継続して実行されます。打ち切り時間に達した場合は,ジョブの実行を打ち切ります。実行が終了すると終了状態になります。また,遅延監視も継続されます。遅延日時に達すると遅延状態になります。ただし,ジョブが遅延状態となっても,上位ユニットの状態は遷移しません。上位ユニットの状態はサスペンド解除時に遷移します。
サスペンド中の実行中ジョブについて,次の図に示します。
図4‒48 サスペンド中のジョブの状態遷移(実行中ジョブについて) -
サスペンドしたルートジョブネット下のユニットが,新たに実行中の状態になることはありません。
サスペンド中の先行終了待ちジョブについて,次の図に示します。
図4‒49 サスペンド中のジョブの状態遷移(先行終了待ちジョブについて)
(b) サスペンド中のジョブネット(リモートジョブネットを除く)の状態遷移
サスペンドした時点ですでに実行中のジョブネット(リモートジョブネットを除く)は,下位のユニットがすべて終了状態になっても実行中の状態のままです。また,遅延監視や打ち切り時間(繰り越し)の監視も行われません。
サスペンド中の実行中ジョブネットについて,次の図に示します。
|
(c) サスペンド中のリモートジョブネットの状態遷移
ルートジョブネットをサスペンドした場合,実行中のリモートジョブネットだけ状態が遷移します。このとき,後続ジョブや上位のユニットの状態は遷移しません。
(d) サスペンド中にJP1/AJS3サービスをホットスタートで再起動した場合の状態遷移
ルートジョブネットのサスペンド中にJP1/AJS3のサービスが停止し,ホットスタートで再起動した場合,実行中だったジョブの実行は継続されますが,ジョブの実行が終了しても終了状態にはなりません。サスペンド解除後に,ジョブの状態が終了状態になります。
サスペンド中にJP1/AJS3サービスをホットスタートで再起動した場合の状態遷移について,次の図に示します。
|
なお,ルートジョブネットのサスペンド中に,JP1/AJS3サービスをホットスタートで再起動したあと,実行中のユニットの先行ユニットとしてユニットを追加し,サスペンド解除時に「実行する」オプションを指定した場合は,先行ユニットとして追加したユニットの終了後に,実行中だったユニットの状態が終了状態になります。
サスペンド中にJP1/AJS3サービスをホットスタートで再起動した場合の状態遷移について,次の図に示します。
|
(e) サスペンド中にJP1/AJS3サービスをウォームスタートで再起動した場合の状態遷移
ルートジョブネットのサスペンド中にJP1/AJS3のサービスが停止し,ウォームスタートで再起動した場合は,サスペンド状態は継続されますが,実行中のジョブは「終了状態不明」に,実行中のジョブネットは「中断」に,実行中のジョブネットの下に追加したユニットは「計画未実行」になります。
また,サスペンド中に遅延監視時刻に達したユニットがあっても,終了遅延は検出されません。
サスペンド中にJP1/AJS3サービスをウォームスタートで再起動した場合の状態遷移について,次の図に示します。
|
(f) サスペンド中にJP1/AJS3サービスをコールドスタートで再起動した場合の注意事項
ルートジョブネットのサスペンド中にJP1/AJS3のサービスが停止し,コールドスタートで再起動した場合,サスペンド中に削除したユニットレコードが,無効なレコードとしてデータベース上に残ります。この場合は,次に示すコマンドを実行して,無効なレコードを削除する操作を,すべてのルートジョブネットに対して実施してください。
ajssuspend -U -R -T /
(5) サスペンド中の待ち合わせ条件の変更
サスペンド中に待ち合わせ条件を変更したときの待ち合わせ条件付きユニットの動作は,そのときの待ち合わせ条件付きユニットの状態によって異なります。
-
待ち合わせ条件付きユニットがすでに実行を開始していたり,終了していたりする場合
サスペンド中に変更した待ち合わせ条件の設定は,次回実行時(再実行を含む)から有効になります。
待ち合わせ条件付きユニットが実行中の場合に,待ち合わせ条件を変更する例を,次の図に示します。
図4‒54 待ち合わせ条件付きユニットが実行中の場合に待ち合わせ条件を変更する例 この例では,待ち合わせ条件がすでに成立している待ち合わせ条件付きユニットROOTをサスペンドして,待ち合わせ対象ユニットにイベントジョブBを追加しています。ROOTはすでに実行を開始しているため,イベントジョブBの終了は待ち合わせないで,そのまま実行を継続します。
-
待ち合わせ条件付きユニットが先行終了待ちまたは開始時刻待ちの場合
サスペンド中に変更した待ち合わせ条件の設定に基づいて待ち合わせを継続します。
待ち合わせ条件付きユニットが開始時刻待ちの場合に,待ち合わせ条件を変更する例を,次の図に示します。
図4‒55 待ち合わせ条件付きユニットが開始時刻待ちの場合に待ち合わせ条件を変更する例 この例では,待ち合わせ条件がまだ成立していない待ち合わせ条件付きユニットROOTをサスペンドして,待ち合わせ対象ユニットにイベントジョブBを追加しています。ROOTはまだ待ち合わせ条件の成立前であるため,イベントジョブBを追加すると,ROOTはイベントジョブBの実行終了も待ち合わせます。待ち合わせ方法にはANDを設定しているため,イベントジョブAが正常終了しても,待ち合わせ条件は成立しないでイベントジョブBの実行終了を待ち合わせます。
(6) サスペンド解除後のスケジューリング
(a) サスペンド解除時のスケジュールの割り当て
サスペンドを解除したときの,ユニットのスケジュールの割り当てについて,実行登録の種類ごとに説明します。
- 即時実行登録,および日付指定の確定実行登録の場合
-
通常の即時実行登録,および日付を指定した通常の確定実行登録と同様に,確定実行登録時に指定した日時が開始予定時刻として割り当てられます。ただし,上位のジョブネットに実行予定がない(実行中止されている)場合は,追加されたジョブネットの開始予定時刻は割り当てられますが,上位のジョブネットの開始予定時刻がないため,追加されたジョブネットの開始予定時刻は「なし」になります。
即時実行登録したルートジョブネットをサスペンドし,ユニットを追加する例を,次の図に示します。
図4‒56 即時実行登録したルートジョブネットにユニットを追加する例 サスペンド解除後に割り当てられるスケジュールを,次の表に示します。
表4‒15 サスペンド解除後のスケジュール(即時実行登録,日付指定の確定実行登録の場合) ユニット
11/30
12/1
12/2
12/3
A
−
12:00
−
−
B
−
12:00
−
−
C
−
12:00
−
−
D
−
12:00
−
−
E
−
12:00
−
−
- (凡例)
-
−:該当しない。
- 計画実行登録の場合
-
ルートジョブネットが再実行でない待ち状態の世代は,すべてのジョブネットのスケジュールが再計算されます。ルートジョブネットが実行中,または再実行中の世代のジョブネットは,追加されたジョブネットのスケジュールだけが再計算され,追加された最上位のジョブネットの排他スケジュールは有効になりません。
計画実行登録したルートジョブネットをサスペンドし,ユニットを追加する例を,次の図に示します。
図4‒57 計画実行登録したルートジョブネットにユニットを追加する例 現在日が12/1(金)で,12/1(金)の業務開始前に構成を変更し,11/30(木)分は再実行中で,現在Bのジョブネットを実行中の場合のサスペンド解除後に割り当てられるスケジュールを,次の表に示します。
表4‒16 サスペンド解除後のスケジュール(計画実行登録の場合) ジョブネット
11/24
(金)
11/25
(土)
11/26
(日)
11/27
(月)
11/28
(火)
11/29
(水)
11/30
(木)
12/1
(金)
12/2
(土)
A
●
●
●
●
●
●
★
(○)
○
B
■
■
■
■
■
■
★
(◎)
□
C
■
■
■
■
■
■
(◎)
(◎)
◎
D
■
■
■
■
■
■
(□)
(◎)
□
E
●
■
■
■
■
■
(◎)
(□)
□
- (凡例)
-
●:正常終了
■:計画未実行
★:実行中
○:開始時刻待ち
◎:先行終了待ち
□:未計画
():スケジュール再計算部分
この例では,11/30分のスケジュール再計算の対象は,ジョブネットCとジョブネットCの下のジョブネット(DとE)です。このとき,ジョブネットBとジョブネットCの排他スケジュールは無効になります。なお,12/1分は,最上位ジョブネットからスケジュールが再計算されるため,排他スケジュールが有効になります。
- 確定実行登録の場合
-
ルートジョブネットが待ち状態,または実行中のジョブネットに追加されたジョブネットのスケジュールだけが再計算され,追加された最上位のジョブネットの排他スケジュールは有効になりません。
確定実行登録されているルートジョブネットをサスペンドし,ユニットを追加する例を,次の図に示します。
図4‒58 確定実行登録されているルートジョブネットにユニットを追加する例 現在日が12/1(金)で,12/1(金)の業務開始前に構成を変更し,11/30(木)分は再実行中で,現在Bのジョブネットを実行中の場合のサスペンド解除後に割り当てられるスケジュールを,次の表に示します。また,12/6まで確定実行登録済みと仮定します。
表4‒17 サスペンド解除後のスケジュール(確定実行登録の場合) ジョブネット
11/29
(水)
11/30
(木)
12/1
(金)
12/2
(土)
12/3
(日)
12/4
(月)
12/5
(火)
12/6
(水)
A
●
★
○
○
○
○
○
○
B
■
★
◎
□
□
□
□
□
C
■
(◎)
(◎)
(◎)
(◎)
(◎)
(◎)
(◎)
D
■
(□)
(◎)
(□)
(□)
(□)
(□)
(□)
E
■
(◎)
(□)
(□)
(□)
(□)
(□)
(□)
- (凡例)
-
●:正常終了
■:計画未実行
★:実行中
○:開始時刻待ち
◎:先行終了待ち
□:未計画
():スケジュール再計算部分
確定実行登録では,すでに確定している期間については,サスペンド解除時に既存の世代のスケジュール再計算はされません。この例では,スケジュール再計算の対象は,ジョブネットCとジョブネットCの下のジョブネット(DとE)です。このとき,ジョブネットBとジョブネットCに設定した排他スケジュールは無効になります。なお,未来世代数による確定実行登録の場合,サスペンド解除後に作成される世代は最上位ジョブネットからスケジュールが再計算されるため,排他スケジュールが有効になります。
(b) サスペンド解除後の実行スケジュール
計画実行登録,および未来世代数を指定した確定実行登録では,ジョブネットが実行されるたびに新たな世代を割り当てます。そのため,[マンスリースケジュール]ウィンドウ,[デイリースケジュール]ウィンドウ,ajsshowコマンドなどで予実績を表示する場合,次に示す実行予定については,スケジュールシミュレーションを実行した結果が表示されます。
-
計画実行登録の場合
次々回以降の実行予定
-
未来世代数を指定した確定実行登録の場合
指定された未来世代数以降の実行予定
そのため,ルートジョブネットの次回実行予定までにサスペンドが解除されないと,サスペンド解除時に行われる繰り越し処理などによって,ジョブネットの実行スケジュールに影響が出る場合があります。サスペンド操作の時間は,複数世代にまたがらないよう注意してください。
6/12に計画実行登録されたジョブネットの例を,次の表に示します。
ジョブネット |
6/10 |
6/11 |
6/12 |
6/13 |
6/14 |
6/15 |
6/16 |
6/17 |
6/18 |
6/19 |
6/20 |
---|---|---|---|---|---|---|---|---|---|---|---|
Jobnet |
● |
● |
● |
○ |
◎ |
◎ |
◎ |
◎ |
◎ |
◎ |
◎ |
- (凡例)
-
●:正常終了
○:次回予定
◎:スケジュールシミュレーション
上の表の場合,6/12で計画実行登録されたジョブネット(Jobnet)については,JP1/AJS3のデータベース上では6/13の世代の情報が格納されています。このジョブネットを,6/12の実行が終了した時点でサスペンドし,6/14以降までサスペンドを解除しないと,6/13の予定がそのまま残り,サスペンド解除後に初めて繰り越し処理などの対象になります。そのため,繰り越し未実行の世代が作成されたり,実行スケジュールがスキップされたりする場合があります。
(7) イベントジョブを追加した場合のマクロ変数の引き継ぎ
マクロ変数は,後続ユニットが実行待ち状態から実行状態に遷移したときに引き継がれます。
実行登録中にルートジョブネットの下位の定義を変更したときの,マクロ変数の引き継ぎの動作について,次に説明します。
サスペンドを解除したあとのマクロ変数の引き継ぎの動作は,追加したイベントジョブの後続ユニットの状態によって異なります。
-
後続ユニットが実行中の場合
後続ユニットの状態ごとの動作を,次の図に示します。
図4‒59 実行中のユニットの前にイベントジョブを追加した場合 ジョブ2が終了すると,ジョブ3はイベントジョブ2が終了するのを待ちます。ジョブネット1に引き継がれるマクロ変数の値は,ジョブネット1が実行中の状態に遷移するときに作成されます。上記の図の場合は,ルートジョブネットをサスペンドする前に作成されたマクロ変数の値を,ジョブネット1の下で使い続けます。
-
後続ユニットが先行終了待ちの場合
後続ユニットの状態ごとの動作を,次の図に示します。
図4‒60 先行終了待ちのユニットの前にイベントジョブを追加した場合 イベントジョブ2とイベントジョブ3が終了してから,ジョブネット1が実行されます。ジョブネット1に引き継がれるマクロ変数の値は,ジョブネット1が実行する状態に遷移するときに作成されます。上記の図の場合は,イベントジョブ1の実行結果,イベントジョブ2の実行結果,およびサスペンドを解除したあとに実行されたイベントジョブ3の実行結果をマージした値が,マクロ変数の値としてジョブネット1に引き継がれます。