【事象】
□以下のエラーログが出力される
GLF probe crashed with following error:”2011-09-04T08:38:29: Error: E-UNK-000-000: Maximum number of terminators (2) within event has been exceeded ”
□または以下のログが出力される
2011-11-21T17:13:29: Error: E-UNK-000-000: Max no of terminators(2)within event has been exceeded
2011-11-21T17:13:29: Error: E-UNK-000-000: Unable to get events
2011-11-21T17:13:29: Error: E-UNK-000-000: Failed to set service running
【事象の原因】
”QuoteCharacter” が [“:34] (デフォルト) に設定され、終端子が検出されない場合
[例]:
2011-09-21 15:59:44 1st event: is generated by unknown application “ABC XYZ<\n> 2011-09-21 16:01:08
2nd event: is generated by application Tivoli<\n>
2011-09-21 16:10:23 3rd event: is generated by application Lotus<\n>
”ReadLine” パラメータが [ON]に設定されている場合、プローブは次行に到達するか、EOF(end-of-file)を検出するか、
”MaxBufferSize” に達するまでメッセージを読み込みむ。
1. “ReadLine” パラメータが [OFF] (デフォルト)に設定されている場合、プローブは、 “LineSeparator” (デフォルト \n) を超えて処理を行う。
2. 引用符の開始が最初のイベント中にあり、それに対応する引用符の終了がそのイベント中に見つけられない場合、
プローブは引用符の終了を待つ。
3.先の例では、この時点で、最初のイベント中に “LineSeparator” を検出している。
4.2つの目のイベントを受信したが、そこにも引用符の終了を検出できなかった。
しかし、この2つ目のイベントの最後に “LineSeparator” を検出したので、この時点でプローブは
2つの”LineSeparator” を受信している。
5.3つ目のイベントを受信したが、ここでもプローブは引用符の終了を見つけられず、
”LineSeparator”をイベントの最後に検出している。
この時点で、3つの “LineSeparator”を受信し、この数が “MaxTerminators” (デフォルト:2)を
超えているが、それでも引用符の終了を検出できなかったため、プローブは破損イベントとして処理を終了する。
【認識】
□参考サイト
https://www-304.ibm.com/support/docview.wss?uid=swg21516494
参考サイトを読んだ理解としては、デフォルト値でのGLFの挙動は以下の通り。
・GLF Probeがログを読み込む際、引用符としてデフォルトで「”」(パラメータとしては34)を使用する。
・ログ出力1行の中に「”」が含まれていると、「”」を引用符の開始と認識し、そこから終わりの引用符までを1つのイベントと識別する。
・ReadLineが0であると改行コードを超えて読み込みを行う。
・MaxTerminatorsが2であると、LineSeparator(改行コード)の数が引用符でくくられている間に最大2つまでは許可する。
□デフォルト値
# LineSeparator : “\n”
# MaxBufferSize : 4098
# MaxTerminators : 2
# QuoteCharacter : 34
# ReadLine : 0
【解釈】
引用符によるイベントの識別方法ではなく、行によるイベントの識別方法にしたい場合、
QuoteCharacterを”0″、ReadLineを”1″にすることが正しい(または推奨される)設定方法である。
コメント