- ジョブ管理
【JP1/AJS3】JP1/AJS3 × HULFT Square 連携ソリューションを試してみた
JP1とHULFT Square連携で課題となる「認証」や「タイムアウト」をクリアするテンプレートやスクリプトが用意されている、JP1×HULFT Squareのジョブ管理連携ソリューション。本ブログでは、実際にこれらを使用して動作確認を行った内容をご紹介します。
|
|
JP1/AJS3でジョブ実行をしていると、一度は見かける「繰り越し未実行」。
今までスケジュール通りに動いていたのに、実行されていない、繰り越し未実行のメッセージが繰り返し出力されて焦ったという経験はありませんか?
原因調査や対処の要否などについてのお問い合わせは、非常に多く寄せられます。 今回は「繰り越し未実行」が発生する原因と関連する設定項目について、分かりやすく解説します。
繰り越し未実行とは、一言で言えば「さまざまな要因により、ジョブネットが予定された日時に実行されなかった状態」のことです。
|
|
ジョブネットが繰り越し未実行になると、統合トレースログにメッセージが出力されます。エラーメッセージとして出力されますが、エラーではなくジョブネットが実行されずに終了したことを示します。
メッセージ例
統合トレースログの出力先(デフォルト)
JP1 Version 13 JP1/Automatic Job Management System 3 導入ガイド
6.1 ジョブネット・ジョブ・ジョブネットコネクタの状態
繰り越し未実行が意図した動作ではない場合、以下の表を参考に、どの発生パターンに該当するかを確認し、対応する設定の見直しを検討してください。
| 発生パターン | 回避方法 | |
|---|---|---|
| ① | JP1/AJS3 - Managerサービス再起動のタイミングで発生 | 実行登録時の指定の見直し ①へ |
| ② | 0時前後に発生 | ジョブネットの「打ち切り時間」の設定の見直し ②へ |
| ③ | 前の世代が実行中に、次の世代が開始したことによって発生 (①と②に該当しない場合) |
ジョブネットの実行が重なった際の設定の見直し 通常のジョブネットの場合: ③-1へ 起動条件付きジョブネットの場合: ③-2へ |
業務要件として実行しなければならない場合は、
ジョブネットの再実行
をしてください。
繰り越し未実行が発生し、ジョブネットが実行されなかったことによる業務上の問題がなければ、そのままにして構いません。デフォルトの設定の場合、前のジョブネットの実行が終わっていれば、次回分はスケジュール通りに動きます。
スケジューラーログの出力先(デフォルト)
メッセージ例
1.スケジューラーログのN013の出力行から、ジョブネット「AJSROOT1:/jobgroup/jobnet01」が16:31に
繰り越し未実行になったことを確認します。
2.スケジューラーログを遡り、同じジョブネット「AJSROOT1:/jobgroup/jobnet01」の開始ログ(N001)
を探し、前回実行分の実行ID(@A109)を特定します。
3.実行ID(@A109)からジョブネットの終了ログ(N002・N003・N004)と前回分がいつ終わったのか
を確認します。
この例では、N002のログから前回分(@A109)が「16:31:30」に正常終了したことが分かります。次の回の開始時刻(16:31)を30秒オーバーしていたことが繰り越し未実行の原因と特定できます。
ログ種別解説
| 種別 | 内容 |
|---|---|
| N001 | ジョブネット開始 |
| J006 | ジョブサブミット開始 |
| J001 | ジョブ実行開始 |
| N013 | ジョブネット繰り越し未実行 |
| J002 | ジョブ正常終了 |
| N002 | ジョブネット正常終了 |
JP1 Version 13 JP1/Automatic Job Management System 3 トラブルシューティング
付録C.1 スケジューラーサービスが出力するログ
<動作解説>
ジョブネットの実行登録時に「デーモン起動時に予定時刻超過:次回から実行する」を選択していた場合、
JP1/AJS3 - Managerサービスを再起動すると、サービスが停止していた時間に実行を予定していたジョブネットは繰り越し未実行になります。
現在どのように実行登録されているかは、以下の手順で確認できます。
1.JP1/AJS3 - Viewにログインします。
2.[機能メニュー]から[実行登録]を選択します。
3.対象ジョブネットを選択した状態で画面中央の[表示]ボタンを押下します。
4.「デーモン起動時に予定時刻超過」の設定を確認します。
<見直しポイント>
サービス起動時、当日の予定時刻を超過したジョブネットをすぐに実行させたい場合は、一度実行登録を解除し、「デーモン起動時に予定時刻超過:すぐに実行する」を選択し、実行登録をし直してください。
<動作解説>
ジョブネットが深夜0時前後で繰り越し未実行に遷移している場合、ジョブネットの「打ち切り時間」の設定が関連している可能性があります。
「打ち切り時間」とは 開始予定時刻を過ぎたとき、どのくらい経過した時点でジョブネットの「開始時刻待ち」または「保留中」の状態を打ち切るかの設定です。
基準時刻(デフォルト0時)を起点に「システム設定に従う(デフォルト)/1日/2日/無制限」のいずれかを指定します。「デフォルト(システム設定に従う)」の場合、0時の時点で開始していないジョブネットは繰り越し未実行になります。
|
|
| 項目 | 内容 |
|---|---|
| システム設定に従う | デフォルトの設定です。環境設定パラメーターEXECDEFERの値に従い打ち切ります。EXECDEFERはデフォルト「1日」です。 |
| 1日 | 開始予定日の基準時刻から23:59:59後にジョブネットを打ち切ります。 48時間制で、開始予定日時が24:00~47:59のスケジュールは、打ち切り時間「2日」です。 |
| 2日 | 開始予定日の基準時刻から47:59:59後に打ち切ります。 |
| 無制限 | 打ち切り時間はありません。 |
<見直しポイント>
打ち切り時間が「1日」または「2日」の場合は、打ち切り時間に到達した時点で「開始時刻待ち」状態または「保留中」状態を打ち切ります。そのため、「無制限」に変更することで、ジョブネットの打ち切り時間によって繰り越し未実行となることはありません。
ただし、ジョブネットの打ち切り時間は、実行登録中に変更しても反映されません。一度実行登録を解除して再度実行登録する必要があります。
ジョブネットの打ち切り時間を無制限にした場合、前の世代の処理が長引いた際に次の世代が繰り越し未実行に遷移しないため、長期実行に気づけなくなる懸念があります。その場合は対象ジョブネットやジョブに「遅延監視」を設定し、処理遅延を検知できるようにしておきましょう。
JP1 Version 13 JP1/Automatic Job Management System 3 導入ガイド
3.1.1 ユニット
スケジュール通りに動いていたのに、突然繰り越し未実行になったというケースの多くは、前世代の処理が長引いたことによる次のジョブネットの開始時刻超過です。
例えば、15分間隔で実行しているジョブネットで、8:00の処理が長引いた場合に、8:15にスケジュールされた分が、スキップされ実行されず繰り越し未実行に遷移します。
|
|
ジョブネットの種類によって、実行が重なった際の挙動に関する設定項目が変わります。
・通常のジョブネット(開始時刻を指定して実行)
・起動条件付きジョブネット(条件成立を契機に実行)
<動作解説>
以下設定の場合に、繰り越し未実行が発生します。
・「スケジューリング方式:スケジュールスキップ」
|
|
| [スケジュール方式]:スケジュールスキップ (デフォルト) |
開始予定時刻が前の実行分の処理と重なっているジョブネットの実行予定をスキップします。 | |||||
|---|---|---|---|---|---|---|
| [スケジュール方式]:多重スケジュール | [多重起動]の設定は、[スケジューリング方式]で多重スケジュールを選択した場合にだけ有効になります。 | |||||
| [多重起動]:不可能 (デフォルト) |
前の実行分の処理が終了するまで待ってから次のジョブネットを実行します。
|
|||||
| [多重起動]:可能 | 前の実行分のジョブネットが次の開始予定時刻と重なっても、前の実行分の終了を待たないで多重に実行します。 | |||||
<見直しポイント>
業務要件として同時に実行しても良い場合は、設定を見直すことで、繰り越し未実行となるのを防ぐことができます。
例えば、15分間隔で実行しているジョブネットで、8:00の処理が長引いた場合、設定ごとの動作は以下のとおりです。
|
|
▼「スケジューリング方式:多重スケジュール」かつ「多重起動:不可能」の検討
前のジョブネット終了後に次のジョブネットが開始するため、繰り越し未実行は発生しません。 ただし、この状態のまま打ち切り時間を経過すると開始時刻待ちは繰り越し未実行に遷移します。
▼「スケジューリング方式:多重スケジュール」かつ「多重起動:可能」の検討
前の処理が長引いた場合でも時間通りに次のジョブネットが開始します。開始時刻や処理時間など要件に合わせて、設定を検討してください。
JP1 Version 13 JP1/Automatic Job Management System 3 導入ガイド
3.3.3 多重起動とスケジューリング方式
起動条件付きジョブネットが実行開始すると、事象の発生を監視を制御する世代(監視世代)と、事象の発生を待って動作する世代(実行世代)が生成されます。
監視世代または実行世代それぞれで、監視中または実行中があるとき、次回予定分のジョブネットが開始すると繰り越し未実行が発生する可能性があります。
|
|
監視世代の場合
<動作解説>
以下いずれかの設定の場合に、繰り越し未実行が発生します。
・「監視世代の多重起動:監視を開始しない」
・「監視世代の多重起動:監視の終了を待つ」
|
|
<見直しポイント>
業務要件として同時に実行しても良い場合は、設定を見直すことで、繰り越し未実行となるのを防ぐことができます。
▼「監視世代の多重起動:監視の終了を待つ」の検討
監視中のまま次の開始時刻になった場合に、監視世代は開始時刻待ちに遷移します。開始時刻待ちのまま打ち切り時間を過ぎると繰り越し未実行に遷移します。
▼「監視世代の多重起動:監視を開始する」の検討
監視中のまま次の開始時刻になった場合、新たな監視世代は監視中に遷移します。
ジョブネットのスケジュールに処理サイクルを設定していて起動条件の有効範囲を「無制限」にしている場合、この動作を選択すると、不要な監視世代が大量に多重起動して実行世代が大量に生成されるおそれがあるため、推奨しません。
JP1 Version 13 JP1/Automatic Job Management System 3 導入ガイド
3.4.5 監視世代の多重起動
実行世代の場合
<動作解説>
「起動条件成立した実行世代の滞留:繰り越して滞留させない」かつ「多重起動:不可能」を設定していると繰り越し未実行が発生します。
| 定義箇所 | 項目 | 内容 |
|---|---|---|
| ジョブネットの [多重起動] |
不可能 | 前の実行分の処理が終了するまでまってから次のジョブネットを実行する場合に指定。(デフォルト) |
| 可能 | 前の実行分の終了を待たずに多重に実行する場合に指定。可能の場合、[起動条件成立した実行世代の滞留]は有効にはならない。 | |
| 起動条件の [起動条件成立した実行世代の滞留] |
繰り越して 滞留させない |
重複した実行世代は「繰り越し未実行」に遷移し、実行されない。 |
| 繰り越さずに滞留させる | 重複した実行世代は「起動条件待ち」にして滞留させ、実行中の実行世代が終了してから、重複した実行世代の実行を開始する。(デフォルト) |
<見直しポイント>
業務要件として同時に実行しても良い場合は、設定を見直すことで、繰り越し未実行となるのを防ぐことができます。
▼「多重起動:可能」の検討
1回目が実行中でも、2回目も並行して実行するため、繰り越し未実行は発生しません。
▼「多重起動:不可能」かつ「起動条件成立した実行世代の滞留:繰り越さずに滞留させる」の検討
1回目が実行中の場合、2回目は起動条件待ちで待つため繰り越し未実行は発生しません。
なお、起動条件待ちのステータスが大量に発生すると、ジョブの実行遅延に繋がります。詳細は、「【JP1/AJS3】起動条件付きジョブネットの滞留を解消する3つの方法
」をご確認ください。
JP1 Version 13 JP1/Automatic Job Management System 3 導入ガイド
3.4.4 実行世代の多重起動
繰り越し未実行になったジョブネットは、前のジョブネットの実行が終わっていれば、次回分はスケジュール通りに動きます。
繰り越し未実行になった回のジョブネットを動かす必要がある場合は、手動で「再実行」の操作を行ってください。
また、「前回異常時だけ保留」や「異常終了後の動作:ジョブネットの開始を保留する」に設定している場合、繰り越し未実行は異常終了として扱われるため、次回分が「保留中」となります。
▼繰り越し未実行は再実行させ、保留中は実行させたくない場合
1.保留中のジョブネットをすべて実行中止にします。
2.繰り越し未実行となったジョブネットを再実行します。
▼繰り越し未実行も保留中も実行させたくない場合
1.保留中のジョブネットをすべて実行中止にします。
2.繰り越し未実行となったジョブネット内の各ジョブの状態変更を行います。ジョブを右クリック-[ジョブの状態変更]から「正常終了」に変更してください。
繰り越し未実行が発生した際は慌てず、JP1/AJS3 - Managerサービス再起動はなかったか、前のジョブネットの実行時間などを確認し、今回ご紹介した設定項目を見直してみてください。
JP1の設定の組み合わせで、安定したジョブ運用を目指しましょう。
JP1/Automatic Job Management System 3 - Manager(JP1/AJS3 - Manager)
|
|
|
|---|
JP1とHULFT Square連携で課題となる「認証」や「タイムアウト」をクリアするテンプレートやスクリプトが用意されている、JP1×HULFT Squareのジョブ管理連携ソリューション。本ブログでは、実際にこれらを使用して動作確認を行った内容をご紹介します。
HULFT のファイル転送をJP1/AJS3で一元管理する方法と、その設定時のポイントをご紹介します。
JP1/AJS3またはJP1 CS ジョブ管理をご利用中の皆様に向けて、「ジョブ分析」がジョブの全体像の可視化や運用効率・安定性向上に役立つか、具体的な活用シーンをご紹介します。