こんにちは!JP1のジョブ設計や運用保守、日々お疲れ様です。
JP1/AJSの「ファイル監視ジョブ」や「起動条件(ファイル監視)」を設定する際、「監視対象ファイル名」にワイルドカード( * )を使って、不特定のファイルが届くのを待ち受ける設計にすることはよくありますよね。
設定例: /home/user/data/input_*.csv
これにより、例えば日付や連番が入った複数のファイルを柔軟に検知できるようになります。
しかし、ここで運用の現場からよく上がるのが、「無事にジョブは起動したけれど、実際はどのファイル名にマッチして動いたのかを後から確認したい!」という疑問です。
今回は、マッチしたファイル名を特定する方法と、関連するメッセージ(KAVT2020-I)、そしてログ出力先に関するニッチな仕様について解説します。
1. 結論:マッチしたファイル名は「詳細情報」で特定できる
ワイルドカードに何が引っかかったのかは、AJS View画面から以下の手順で確認することができます。
➔ 確認の手順
-
JP1/AJS3 – View画面を開き、対象のジョブネットを選択します。
-
「マンスリースケジュール」 画面(またはデイリースケジュール画面)を開きます。
-
該当する実行世代(ファイル監視が成立した世代)をダブルクリック、または右クリックして 「詳細情報」 を開きます。
-
実行結果詳細のテキストエリアを確認すると、以下のメッセージが出力されています。
YYYY/MM/DD HH:MM:SS KAVT2020-I 監視開始オプション(/home/user/data/input_20260609.csv)が成立しました。
(または 英語環境:The watching start option (/home/user/data/input_20260609.csv) is satisfied.)
このカッコ ( ) の中に、実際に検知した具体的なファイル名がばっちり記録されているため、ここを見れば一発で特定が可能です。
2. ログの出力先を変えたい!「KAVT2020-I」の壁
「View画面を開きに行くのが面倒だから、サーバー側の統合ログやテキストログに出力先を変更して、自動でファイル名を抽出できないの?」と考えたくなりますよね。
結論から言うと、残念ながらこの KAVT2020-I メッセージの出力先をシステムログ(syslog等)などに変更することはできません。
JP1のマニュアル(KAVTで始まるメッセージの出力先)によると、KAVTから始まるメッセージは「実行結果詳細(Viewの画面上)」専用のメッセージとして定義されています。ファイルに直接吐き出されるタイプのログではないため、設定変更によるリダイレクトができない仕様になっています。
【参考】
KAVTで始まるコードの出力先について
1.3.4 KAVTで始まるメッセージの出力先 : JP1/Automatic Job Management System 3 メッセージ1 (hitachi.co.jp)
3. サーバー側のログ(hntr2ログ)で分かること・分からないこと
Viewを開かずに、LinuxやWindowsサーバー側のログから「起動条件が成立したタイミング」だけでも追いたい、という場合は、JP1の共通ログである 「統合トレースログ(hntr2ログ)」 を見るという手段があります。
➔ 統合トレースログの保管場所(Linuxの場合)
/var/opt/hitachi/HNTRLib2/spool/hntr2{1|2|3|4}.log
➔ ログのフォーマット
hntr2ログは以下のフォーマットで出力されており、起動条件が成立した事実(イベント)自体はここに記録されます。
[通番] [日時] [アプリケーション識別名(jpomanagerなど)] [プロセスID] [スレッドID] [メッセージID] [メッセージ]
⚠️ 注意点
このログを見れば「起動条件が成立した(イベントが発生した)」という時間や事実は分かりますが、「何というファイル名が成立したか」という具体的なファイル名までは記載されません。
そのため、どうしても「マッチしたファイル名」をシステム的に自動抽出したい場合は、起動条件のファイル監視の直後のジョブ(後続ジョブ)で、シェルスクリプトやバッチを使って ls コマンド等でその瞬間にディレクトリにあるファイルを特定するような、別の実装アプローチを検討する必要があります。
まとめ
-
ワイルドカードで監視したファイル名は、Viewの 「詳細情報(KAVT2020-I)」 で特定できる。
-
KAVT2020-IはView専用メッセージのため、サーバー側のログに出力先を変更することはできない。 -
サーバー側の統合トレースログ(hntr2)では成立したタイミングは追えるが、具体的なファイル名までは残らない。
JP1の仕様上、少しもどかしい部分ではありますが、挙動を正しく理解しておくことで、「Viewから手動で追う運用にするのか」「後続ジョブでファイル名を引っかける仕組みを仕込むのか」といった確実な運用設計ができるようになります。ぜひ参考にしてみてください!
