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

【JP1/AJS】ログファイルを監視するジョブの作り方とテスト手順(元からある文字は検知する?)

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

システム運用の中で、「特定のログファイルに特定の文字列が出力されたら、それを検知して次の処理を動かしたい」というケースはよくあります。

JP1/AJS3では、「ログファイル監視ジョブ」を使うことで、ログの書き込みをリアルタイムに検知してジョブネットを制御できます。

今回は、ログファイル監視ジョブの基本的な設定方法、動作テストの手順、そして「知っておかないと絶対にハマる注意点」を解説します!

1. 事前準備:必要なサービスが起動しているか確認

ログ監視を動かすには、監視対象のサーバーで以下の2つのサービスが起動している必要があります。まずは Windows の「サービス」画面などで状態を確認しましょう。

  • JP1/Base Event (実行中であること)

  • JP1/BaseLogTrap (実行中であること)

※特に JP1/BaseLogTrap(ログトラップサービス)が停止していると、ジョブを起動してもログの書き込みを検知できないため注意してください。

2. ログファイル監視ジョブの作成と設定例

今回はテスト用として、以下のような構成のジョブネットを作成してみます。

Plaintext

[ログファイル監視ジョブ] ➡️ [後続のPCジョブ(中身は空でOK)]

(※ログファイル監視ジョブはネットの先頭に配置して問題ありません。後続に空のPCジョブを繋げておくことで、正常に検知して次へ進んだかが視覚的に分かりやすくなります)

ジョブの主要な設定項目

ログファイル監視ジョブのプロパティを開き、以下のように設定します。

設定項目 設定値の例 説明
ログファイル名 C:\work\tmp\logtrap.txt 監視対象のログファイルのフルパス。
トラップするデータ AND 条件で "SUCCESS" 検知したいキーワード(今回は SUCCESS )。
ログファイル動作定義 有効 ログ監視を有効にします。
打ち切り時間 1分 文字列が書き込まれるのを待つ制限時間。
打ち切り後の状態 強制終了(または異常終了など) 時間切れになった場合のジョブのステータス。

【この設定の意味】

ファイルに「SUCCESS」という文字が書き込まれたらジョブは正常終了し、後続のジョブへ進みます。もし1分間待っても書き込まれなければ、タイムアウトとなり異常終了します。

3. 動かしてみよう!動作確認の手順

設定ができたら、実際に動かしてみましょう。

  1. ジョブネットを 「確定実行(または即時実行)」 で登録します。

  2. JP1/AJS3 Automation Monitor などの画面で、対象のログファイル監視ジョブが 「実行中(緑色)」 になったことを確認します。

  3. コマンドプロンプトを開き、以下のコマンドを実行して、監視対象のファイルに文字を書き込みます。

DOS

echo SUCCESS > C:\work\tmp\logtrap.txt

文字が書き込まれた瞬間、JP1がそれを検知してジョブが瞬時に「正常終了(黄色)」に変わり、後続のPCジョブへ処理が移ればテスト成功です!

⚠️ 超重要!実務で絶対にハマる注意点

ログファイル監視ジョブを運用に組み込む際、以下の仕様を絶対に頭に入れておく必要があります。

💡 「監視が始まってから書き込まれた文字」しか検知しない

ジョブが実行状態になるから、ファイル内に最初から書いてある「SUCCESS」という文字は無視されます。あくまで**「監視状態(実行中)になって以降に、新しく追記された文字」**だけが検知の対象です。

構成上の工夫が必要なケース

同じジョブネット内で、「先行のPCジョブAがログを出力し、その後続のログ監視ジョブBでそのログをチェックする」 という構成にする場合、タイミング問題が発生します。

PCジョブAがログを書き込む速度が早すぎると、後続のログ監視ジョブBが「実行中」になる前に書き込みが終わってしまい、ログ監視ジョブが文字を見落として、そのままタイムアウト(異常終了)してしまう という罠に陥ります。

対策

同じジョブネット内でログを出力してそれを監視する場合は、ログが出力されるよりも前に、確実にログ監視ジョブが先に「実行中(待ち受け状態)」になっているようなジョブ構成(並列で走らせる、または起動順序制御を使うなど)にする工夫が必要です。

まとめ

  • ログ監視には JP1/BaseLogTrap サービスの起動が必須。

  • 打ち切り時間を設定することで、無限待ちによるジョブの滞留を防げる。

  • 「監視開始後に書き込まれた文字」しか検知しないため、先行ジョブとのタイミングのバッティングには要注意!

正しく使えば、アプリケーションの終了同期やエラー検知に非常に役立つジョブです。ぜひ特性を理解して活用してみてください!

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