アプリケーションプログラムのログファイルの情報をJP1イベントに変換してイベントDBに登録する流れを次の図に示します。
図1-9 アプリケーションプログラムのログファイルの変換から登録までの流れ
ログファイルトラップを使用するには,ログファイルトラップ動作定義ファイルを作成し,監視するログファイルの出力形式と,JP1イベントに変換したいログデータの条件を指定します。その後,コマンドを実行すると,ログファイルトラップ管理サービス(デーモン)を基盤としてログファイルトラップが生成され,ログファイルを監視します。監視条件に一致するログデータがあると,JP1イベントに変換してイベントDBに登録します。複数のログファイルトラップを同時に起動できるため,さまざまなログファイルを異なる条件で監視できます。また,一つのログファイルトラップで複数のログファイルを監視することもできます。
JP1イベントとして登録できるメッセージは,デフォルトでは511バイトまでです。JP1イベントに変換するメッセージが511バイトを超えた場合,以降のメッセージを切り捨てます。メッセージの長さを拡張したい場合は,jevlogstartコマンドで-mオプションに値を指定すると,1,023バイトまで登録できます。
ログファイルトラップを使用する場合は,次の条件が必要です。
図1-10 ログファイルトラップ起動定義ファイルを使用した場合のログファイルトラップの起動の流れ
ログファイルトラップで変換されたJP1イベントの属性については,「15.3(13) 動作定義ファイルのACTDEFパラメーターで指定されたイベントIDの詳細」を参照してください。
(1) 監視できるログファイル
ログファイルトラップは,サイズが2ギガバイトまでのログファイルを監視できます。また,さまざまな形式のログファイルを監視できます。監視対象のログファイルの形式を確認して,ログファイルトラップ動作定義ファイルにログファイルの形式を指定します。監視できるログファイルの形式を説明します。
図1-11 シーケンシャルファイル(SEQ)の動作
図1-12 シーケンシャルファイル(SEQ2)の動作
図1-13 ラップアラウンドファイル(WRAP1)の動作
図1-14 ラップアラウンドファイル(WRAP2)の動作
図1-15 マルチプロセス対応トレースファイル(HTRACE)の動作
ログファイルトラップでは,シンボリックリンクが設定されたファイルも監視できます。ただし,リンク先の変更に対応できるログファイルの形式はSEQ2だけです。
なお,次に示すログファイルは監視できません。
(2) 監視できるログファイル数
WindowsおよびUNIXで監視できるログファイル数の目安を次に示します。
(3) 監視の開始と終了
ログファイルの監視は,jevlogstartコマンドを実行してログファイルトラップが起動した時点で開始し,一定の間隔で監視を続けます。デフォルトの監視間隔は10秒です。監視間隔は,jevlogstartコマンドの-tオプションで変更できます。ログファイルの監視が終了するタイミングは,jevlogstopコマンドのオプションの指定によって異なります。コマンドの詳細については,「13. コマンド」を参照してください。
ログファイルトラップを再起動した場合,ログファイルトラップの停止後から,次に起動するまでの間に出力されたログは監視されません。
(4) ログファイルの監視失敗時のリトライ
ログファイルの更新元プログラムがログファイルを更新するタイミングと,ログファイルトラップがログファイルを監視するタイミングが競合すると,ログファイルの更新元プログラムによってログファイルに排他が掛けられ,ログファイルのオープンや読み込みに失敗する場合があります。このように,一時的に監視に失敗した場合に,監視をリトライします。
なお,一つのログファイルトラップで複数のログファイルを監視する場合,一つのログファイルの監視に失敗すると,そのログファイルに対してはリトライを行い,ほかのログファイルの監視は続行します。
リトライによって監視を回復できなかった場合は,該当のログファイルの監視を停止します。エラーメッセージで示されるログファイルに異常がないかどうかを確認してください。監視に失敗したログファイルを再度監視したい場合は,jevlogstartコマンドでログファイルトラップを新たに起動してください。
監視の開始時にログファイルをオープンできなかった場合と,監視中にログファイルの読み込みに失敗した場合のリトライの動作について次に説明します。
(a) 監視開始時にログファイルのオープンに失敗した場合
jevlogstartコマンドでログファイルトラップを起動するとき,監視対象のログファイルをオープンします。このとき,ログファイルの更新元プログラムなどによって排他が掛けられていると,ログファイルをオープンできないため監視を開始できません。このような場合,デフォルトでは1秒後に1回リトライします。リトライ間隔およびリトライ回数は,ログファイルトラップ動作定義ファイルで設定できます。
リトライによってログファイルのオープンに成功した場合は,オープンに成功した時点から監視が開始されます。
指定した回数リトライしてもログファイルをオープンできなかった場合,またはリトライ開始から3,600秒経過してもオープンできなかった場合は,エラーメッセージおよびJP1イベント(00003A20)で通知します。JP1イベントの詳細については,「15.3(4) イベントID:00003A20の詳細」を参照してください。
監視開始時に,一時的にログファイルのオープンに失敗した場合のリトライの例を次の図に示します。図の例では,リトライ間隔が1秒,リトライ回数が3回の場合の動作を示します。
図1-16 監視開始時にログファイルのオープンに失敗した場合のリトライの例
(b) 監視中にログファイルの読み込みに失敗した場合
ログファイルの監視中にログファイルの読み込みに失敗した場合は,10ミリ秒間隔で5回リトライします。5回リトライしても回復しなかった場合は,次の監視のタイミングまで待機します。次の監視タイミングでも読み込みに失敗すると,再度10ミリ秒間隔で5回リトライします。リトライ間隔とリトライ回数は固定です。
10ミリ秒間隔で5回のリトライを1セットとしてカウントし,デフォルトでは100セットまでリトライを繰り返します。何セットまでリトライを繰り返すかは,リトライを継続する回数のしきい値としてログファイルトラップ動作定義ファイルで設定できます。
指定した回数リトライが行われても回復しない場合は,該当のログファイルの監視が停止し,JP1イベント(00003A21)で通知します。JP1イベントの詳細については,「15.3(5) イベントID:00003A21の詳細」を参照してください。
監視中にログファイルの読み込みに失敗した場合のリトライの例を次の図に示します。図の例では,リトライを継続する回数のしきい値を3回に設定した場合の動作を示します。
図1-17 ログファイルの読み込みに失敗した場合のリトライの例
(5) イベントサービスへの接続失敗時のリトライ
ログファイルトラップがイベントサービスに接続できなかった場合,デフォルトでは,接続はリトライされないで,ログファイルトラップは起動に失敗または停止します。接続をリトライしたい場合は,ログファイルトラップ動作定義ファイルに,ログファイルトラップごとに設定します。指定した回数リトライが行われてもイベントサービスに接続できなかった場合,ログファイルトラップは起動に失敗,または停止します。
リトライ中に変換されたJP1イベントは,指定した件数まで保留されます。指定した件数を超過してJP1イベントが発生すると,超過したJP1イベントは消去されます。
イベントサービスへの接続に成功すると,保留された順番にJP1イベントをイベントサービスに送信します。また,イベントサービスに接続できたことをJP1イベントで通知します。JP1イベントの詳細については,「15.3(3) イベントID:00003A10の詳細」を参照してください。