
JP1/AJS3には、ある条件が成立した場合に処理を実行させるため、ジョブネットに「起動条件」を設定する機能があります。起動条件の機能は便利ですが、条件の成立回数や時間を見極めて指定しないと、条件が大量に成立して実行しきれなくなったり、成立せずに条件待ちのまま滞留してしまいます。その場合、ジョブの実行遅延が発生してしまう恐れがあります。
本記事では、起動条件付きジョブネットの滞留を解消する方法をご案内します。
トラブルシュートセミナーのご紹介
起動条件付きジョブネットが滞留する仕組み
まず、仕組みについて説明します。起動条件付きジョブネットの滞留は、以下の図のようにルートジョブネットの「スケジュールルール」で「起動条件の有効範囲」を「無制限」にしていたり、処理時間より短いサイクルで起動条件が成立されるように設定すると発生します。「起動条件の有効範囲」を「無制限」にするといつまでも起動条件が終了せずに滞留してしまうため、不必要に設定しないようにしてください。

起動条件付きジョブネットが滞留するパターンは、以下の2つです。
1. 「起動条件待ち」のステータスが大量に発生する
※起動条件により動作するジョブが、起動条件成立より時間がかかる
2. 「監視中」のステータスが毎日発生する
※ 起動条件が成立せず、毎日滞留する
滞留すると以下の図のように、未実行のジョブネットが大量に残ってしまいます。


起動条件を滞留させない設定
そもそも、起動条件を滞留させない設定もあります。以下の画面の様に、起動条件のプロパティ画面にて「起動条件成立した実行世代の滞留」の設定を「繰り越して滞留させない」にしてください。

この設定により、ジョブが実行されている間に成立した起動条件を「繰り越し未実行」にする事ができます。ただ、「繰り越し未実行」になるため、 条件が成立してもジョブは実行されません 。
なお、繰り越し未実行になった場合、JP1/IMと連携している場合、以下のメッセージが出力されます。
KAVS0279-E ジョブネット(AJSROOT1:/ルートジョブネット名)が繰り越し未実行になりました
起動条件付きジョブネットの滞留を解消する方法
以下3つのいずれかの方法で、起動条件付きジョブネットの滞留は解消できます。ただ、作業工数や他のジョブネットへの影響を考慮し、「2」の方法をお勧めします。
1. 手動で、ジョブネットを実行中止または強制終了する
2. コマンドで、ジョブネットを実行中止または強制終了する
3. JP1/AJS3 - Managerをコールドスタートで開始させる
1. 手動でジョブネットを実行中止または強制終了する
JP1/AJS3 - Viewより該当ジョブネットのマンスリースケジュールを開き、「起動条件待ち」の場合は「実行中止」、「監視中」の場合は「強制終了」してください。


2. コマンドでジョブネットを実行中止または強制終了する
大量の「起動条件待ち」ステータスのジョブネットをコマンドで「実行中止」する方法
「ajsplan -p -B 実行登録番号」で実行中止ができます。実行登録番号はコマンドで確認できます。滞留している起動条件付きジョブネットの実行登録番号を確認し、for文で実行中止をする方法を紹介します。
● 実行手順
(1)以下のコマンドを実行し、ジョブネットの実行登録番号を出力する
●Windowsの場合
> ajsshow -F AJSROOT1 -g a -f "%J,%C,%D,%l" -RET /ルートジョブネット名 |findstr "起動条件待ち"
●UNIX系の場合
# /opt/jp1ajs2/bin/ajsshow -F AJSROOT1 -g a -f "%J,%C,%D,%l" -RET /ルートジョブネット名 |grep "起動条件待ち"
●出力結果
以下は「/ルートジョブネット名」に「/起動条件成立_滞留」を入れた場合の結果です。
/起動条件成立_滞留,起動条件待ち,2019/06/07 9:00, 20190607003
/起動条件成立_滞留,起動条件待ち,2019/06/07 9:00, 20190607002
/起動条件成立_滞留,起動条件待ち,2019/06/06 9:00, 20190606004
/起動条件成立_滞留,起動条件待ち,2019/06/06 9:00, 20190606003
※ 赤色 の箇所が「実行登録番号」です。csvファイルとして出力してExcelで開くと簡単に編集できます。
(2)実行登録番号のリストを作る
※「C:\temp\kanshi_list.txt」(任意ファイル)に記載します。
(UNIX系の場合は「/tmp/kanshi_list.txt」とします。)
20190607003
20190607002
20190606004
20190606003
※ 青色 で記載した、一番新しい実行登録番号をajsplanで指定し「実行中止」する場合、ジョブネットが実行中のため、コマンドが失敗した旨の以下メッセージが出力されます。エラーを出したくない場合は、最初の実行登録番号は削除してください。
KAVS0110-E ジョブネット(/起動条件成立_滞留)は実行中です
(3)以下のコマンドを実行して「起動条件待ち」のジョブネットを「実行中止」にする
●Windowsの場合
> for /F "tokens=*" %i in (C:\temp\kanshi_list.txt) do ajsplan -p -B %i /ルートジョブネット名 & ping -n 2 localhost
●UNIX系の場合
# cat /tmp/kanshi_list.txt | while read line; do /opt/jp1ajs2/bin/ajsplan -p -B $line /ルートジョブネット名 & sleep 2; done
※ajsplanコマンドは、連続実行すると運用に影響が出る可能性があるため、「ping -n 2 localhost」や「sleep 2」などを加えて2秒程度の間隔をあけることを推奨しています。
大量に「監視中」になっているジョブネットをコマンドで「強制終了」させる方法
「ajskill -B 実行登録番号」で強制終了ができます。前述の実行登録番号の確認コマンドで、出力条件を「起動条件待ち」から「監視中」に変更します。
● 実行手順
(1)以下のコマンドを実行し、ジョブネットの実行登録番号を出力する
●Windowsの場合
> ajsshow -F AJSROOT1 -g a -f "%J,%C,%D,%l" -RET /ルートジョブネット名 |findstr "監視中"
●UNIX系の場合
# /opt/jp1ajs2/bin/ajsshow -F AJSROOT1 -g a -f "%J,%C,%D,%l" -RET /ルートジョブネット名 |grep "監視中"
●出力結果
以下は「/ルートジョブネット名」に「/起動条件成立しない_滞留」入れた場合の結果です。
/起動条件成立しない_滞留,監視中,2019/06/07 9:00, 20190607001
/起動条件成立しない_滞留,監視中,2019/06/06 9:00, 20190606001
/起動条件成立しない_滞留,監視中,2019/06/05 9:00, 20190605001
/起動条件成立しない_滞留,監視中,2019/06/04 9:00, 20190604001
※ 赤色 の箇所が「実行登録番号」です。csvファイルとして出力しExcelにて開くと簡単に編集できます。
(2)実行登録番号のリストを作る
※「C:\temp\kanshi_list.txt」(任意ファイル)に記載します。
(UNIX系の場合は「/tmp/kanshi_list.txt」とします。)
20190607001
20190606001
20190605001
20190604001
(3)以下のコマンドを実行して「監視中」のジョブネットを「強制終了」する
●Windowsの場合
> for /F "tokens=*" %i in (C:\temp\kanshi_list.txt) do ajskill -B %i /ルートジョブネット名 & ping -n 2 localhost
●UNIX系の場合
# cat /tmp/kanshi_list.txt | while read line; do /opt/jp1ajs2/bin/ajskill -B $line /ルートジョブネット名 & sleep 2; done
JP1/IMと連携している場合、「監視中」のジョブネットを「強制終了」すると、Informationレベルで出力されます。
KAVS0241-I ジョブネット(AJSROOT1:/起動条件成立しない_滞留:@XXXXX)の起動条件監視が終了しました(status: c)
(4)「実行中」になっているジョブネットは、判断の上、手動で強制終了
【マニュアル】
『JP1 Version 11 JP1/Automatic Job Management System 3 設計ガイド(システム構築編)』
1.3.1 JP1/AJS3を運用する上で見積もりや設定が必要な項目
https://itpfdoc.hitachi.co.jp/manuals/3021/30213B1320/AJSH0009.HTM
3. JP1/AJS3 - Managerをコールドスタートで開始させる
以下手順でJP1/AJS3サービスをコールドスタートしてください。
※コールドスタートをすると、すべてのルートジョブネットで実行登録が解除された状態で起動してきます。
ご注意ください。
● 実行手順
●Windowsの場合
JP1/AJS3のサービスを停止
JP1/AJS3のサービス画面を開く
開始パラメーターに「-cold」を入れる
開始ボタンを選択
以下画面を参考に実施してください。

●UNIX系の場合
以下のコマンドを実行してください。
# /opt/jp1ajs2/bin/jajs_spmd -cold
ブログ執筆者からひとこと
こんにちは。アシストサポートセンターの本田です。
今回は、起動条件の滞留について紹介させて頂きました。起動条件を「無制限」にして実行させる場合は、起動条件が滞留しないように設計した上で実行して頂ければ幸いです。
また、対処方法として、コールドスタートがありますが、他のルートジョブネットにも影響してしまいます。かといって、一つずつ手動で「実行中止」や「強制終了」するのもかなり大変です。そこで、コマンドを利用して簡単にできないか考えて、今回のブログを作成するに至りました。
2~3秒空けて連続実行すると運用に影響がでるコマンドを利用するため、pingで2秒待たせる処理を入れたりして工夫しました。JP1で大量に起動条件が滞留する事象が発生しましたら、是非、使ってみてください。
製品正式名称/略称標記 および機能対象バージョン
JP1/Automatic Job Management System 3 - Manager / JP1/AJS3 - Manager Version 9.0 以降
JP1/Automatic Job Management System 3 - View / JP1/AJS3 - View Version 9.0 以降
JP1ブログをご覧いただいているみなさまへご案内
いつもJP1サポート技術者ブログをご覧いただきありがとうございます。
本ブログの執筆を担当しているアシストJP1サポートセンターは、「JP1認定技術者」の資格を持つサポート技術者の対応が支持され、お客様満足度は10年連続90%以上を維持しています。
紹介サイトでは、サポートセンターが誇る3つの特徴とJP1の最新情報満載の提供サービスを、お客様の声とともにご紹介しています。是非ご覧ください。
また、アシストとJP1保守契約を締結されている方は、Webサポートセンター「AWSC-2」をご利用いただけます。本ブログサイトではご紹介しきれない2,000件以上のFAQを公開していますので、是非ご利用ください。詳細は、下記リンクよりご確認ください。
ページトップへ戻る
この記事を書いたスタッフ
本田 祐次
本田 祐次


