fc2ブログ

LND: SEMDEBUG.TXT の時刻表示を変換して見やすくする

今日はLotus Technical Update セミナーで紹介できなかった、LNDの主要な機能の一つとして、SEMDEBUG.TXT の時刻表記の変換機能について紹介します。 

始めに、LND の紹介記事は以下のエントリを参考にしてください。
Lotus Notes Diagnostics Utility
Lotus Technical Updateでの資料はこちらから

 Notes/Domino でセマフォタイムアウトが発生したときに、Debug_Capture_Timeout=1 を設定していると、SEMDEBUG.TXT と言うファイルに詳細情報が出力されます。
この情報をコンソールログなどと紐付けるには当然タイムスタンプの情報が必要なのですが、デフォルトはこのように表示されて、時刻情報が分かりません。

ti="0002916E-4925752C" sq="00002579" THREAD [06A4:06B9-1340] WAITING FOR WRITE LOCK ON FRWSEM 0x0244 database semaphore (@195422E3) (D:\Lotus\Domino\data\example.nsf) (R=1,W=0,WRITER=0000:0000,1STREADER=06A4:1340) FOR 30000 ms


R5.x までは、Debug_Capture_Timeout=10 を設定すればここにタイムスタンプが記録されたのですが、R6.x 以降は記録されなくなっています。詳細については以下の文書を参考にしてください。

Domino 6.0.x での DEBUG_CAPTURE_TIMEOUT による出力ファイルに記録されるセマフォタイムアウトの発生時刻について

なぜこんな変更があったのか、と言うと時間の変換などの時刻処理でもセマフォを使用するので、安全にセマフォの詳細ログを出力するにはこのような形式での出力が必要になったのです。

さて、そういうこともあって経緯はややこしいのですが、LNDでこのような形式のログを変換するのは簡単です。

ファイルを選択して、以下のように右クリックから、[Lotus Notes Diagnostic]-[Convert Semdebug Time Innards]を選択すると自動的に変換されます。

LNDからの実行

変換後は以下のようになります。これなら分かりますね。
2008/12/27 09:28:03 ZE9 sq="00002579" THREAD [06A4:06B9-1340] WAITING FOR WRITE LOCK ON FRWSEM 0x0244 database semaphore (@195422E3) (D:\Lotus\Domino\data\example.nsf) (R=1,W=0,WRITER=0000:0000,1STREADER=06A4:1340) FOR 30000 ms



SEMDEBUGについては、時間だけ分かっても中々意味も分かりづらいと思うので、SEMDEBUG.TXT の話なども機会があったら紹介していきたいと思っています。興味がある方は是非拍手もお願いします。。

コメント

非公開コメント

Re: LND: SEMDEBUG.TXT の時刻表示を変換して見やすくする

dW の LND 記事を拝見しました。
public で使える Laza が欲しかったので大変助かりました。

ありがとうございます

そろそろLNDもバージョンアップしてほしいなあ・・・と思いますね。