Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【JP1/AJS】夜間バッチが翌々日に!?JP1/AJSの基準時刻設定と48時間制が引き起こす恐怖のスケジュールズレ

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!
スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

🔍 ジョブグループの基準時刻の確認方法

ジョブグループに設定されている基準時刻は、JP1/AJS3 – View から以下の手順で簡単に確認できます。

  1. JP1/AJS3 – Viewのマップエリアなどで、確認したいジョブグループを右クリックします。

  2. メニューから[詳細定義]を選択します(または、[詳細定義]ダイアログを開きます)。

  3. 画面内の以下の項目を確認します。

    • 基準時刻設定: 「する」または「しない」

    • 基準時刻: 「〇時〇分」

💡 基準時刻が「設定されていない(しない)」場合:

基準時刻は自動的に 00:00 からの相対時刻として扱われます。結果として、暦通りの「絶対時刻」と変わらない直感的なスケジュールになります。

🚨 注意:基準時刻が 0:00 でない場合の起動条件・時刻の変化

落とし穴になりやすいのが、基準時刻を 0:00 以外(例:朝の 8:00 など)に設定している環境で、24:00以降の夜間スケジュールや起動条件を設定する場合です。

日立の公式ドキュメント(ITPFDOC)にも、以下のような重要な注意点が記載されています。

【公式ドキュメントの要約】

48時間制スケジュールを採用している環境において、

例えば「8/2に実行するジョブネット」の有効範囲を絶対時刻で 26:00 と指定したとします。

もしここで基準時刻が正しく考慮されていないと、JP1のスケジュール計算が複雑化し、実際の暦日(カレンダー通りの日付)で8/4のAM 2:00(翌々日)にスケジュールされてしまうという問題が発生します。

こうした意図しない日付のズレを防ぐため、24:00以降のスケジュールを適用する場合には、基準時刻を設定しない運用(=基準時刻を 00:00 にする)を強く推奨します。

なぜ翌々日(8/4)にズレてしまうのか?

JP1において基準時刻を 0:00 以外にすると、「その日の切り替わりタイミング」自体がズレます(例:朝8:00から次の日の朝7:59までが「当日」扱いとなる)。

この状態で「48時間制」の感覚のまま 24:00 以降の時刻を絶対時刻や相対時刻でパズル(指定)していくと、指定した時刻が「基準時刻の枠」を飛び越えてしまい、JP1側が「翌日の運用日の、さらにその基準時刻から見た26時間後=翌々日」のように解釈してしまうためです。

💡 トラブルを未然に防ぐための設計ベストプラクティス

夜間バッチや日またがりの業務があるシステムでは、以下の構成で統一するのが最もシンプルで安全です。

  • ルール1:基準時刻は「設定しない(0:00)」で統一する

  • ルール2:日またがり業務は「48時間制スケジュール」を採用する

この構成にするメリット

基準時刻が 0:00 であれば、日付の切り替わりは暦通り(カレンダー通り)になります。

その上で48時間制を使えば、例えば「金曜日の深夜25:00(土曜のAM 1:00)」に実行したいジョブを、そのまま「金曜日分のタスクとして25:00起動」と直感的に定義できるようになります。

運用保守を引き継いだメンバーが混乱しないためにも、ジョブグループの基準時刻が意図せず 0:00 以外になっていないか、一度右クリックのプロパティから確認してみることをおすすめします。

タイトルとURLをコピーしました