サポート用Admin Tool データベース

2011年07月12日 00:46

技術文書ではちょっとした処理を行うエージェントなどが紹介されていることがありますが、このようなものをまとめたデータベースが公開されています。

All-in-one Admin Tool for agent-based troubleshooting & problem solving

ダウンロードして開くとこんな感じでセットアップ画面が表示されます。
配置するサーバーを指定して現在のユーザーID(管理者であることが前提ですので、サーバー上でDBを作る権限が必要です)で署名をするまでをこのセットアップ画面でやってくれます。
セットアップ画面

主な機能は以下のようなものです。

1. プロフィール文書の削除
  (メールのルールの問題などの回避などに役に立ちます)

2. Out of Office 診断ツール

3. 「設計の置換や更新を禁止する」オプションを一括で切り替えるツール

4. メールDBのコピーツール
  ※ あまり用途が分かりません

5. 受信ボックス修復ツール
  ※ これも用途は限定的だと思います

6. ACL管理ツール
   メールファイルの所有者のACLを一括で変更します

7. テンプレートの重複チェック
  ※ これも Show Dir コマンドの機能とかぶるのであまり要らない気がします

8. DBプロパティにある「バックグラウンドエージェントを無効にする」オプションの一括設定

9. メールDBのスプレッドシート作成
   サーバー上のメールDBのサイズやIndexの更新日など各種情報をUIから選択してCSVファイルに出力するエージェント

10. DXL Exporter Tool
   任意のDBにある選択文書をアクションメニューから[アクション]-[Export To DXL]メニューからDXL形式で出力できるようになります。(Notes.ini にAddInMenus=DXL.DLL が追加されます)


全部はいらないと思いますがいくつかは持っていてもいいかな、て思う機能があるのではないかと思います。
私もテスト環境でざっと使ってみましたがシンプルなGUIから操作するような形式なので比較的簡単に使うことが出来るのではないかと思います。




Process Monitor でボトルネックを特定する

2011年07月05日 00:38

クライアントの動作が重いとき、ファイルアクセスなのか、レジストリ等のアクセスなのかは問題の切り分けでは非常に重要ですが、その得手作業は大変な作業です。

今日はこのような問題を調査するのに便利なProcess Monitor を紹介します。有名なツールなので知っている方も多いと思います。Process Monitorの最新版はこちらからダウンロードしてください

Process Monitor (Microsoft Windows Sysinternals)

私の記憶が確かなら、Process MonitorはFileアクセスを追っかけるFilemonとレジストリアクセスを追っかけるRegmonと言うツールが一緒になってファイルやレジストリやネットワークを追いかけるツールで、UNIXで言えば、trussのようなツールのイメージでした。
 要するに、詳しい情報は取れるかもしれないけど、何か自分の中で想定要因や仮説が無いと、とてもログ出力が多すぎて役に立たない、と言うイメージでした。

しかし、最近のバージョンはレポート機能が充実してパフォーマンスの問題などのボトルネック特定に非常に便利なレポート機能が数多く含まれていて私も色々な問題の調査に使っています。

今日はこのツールを使って、Notesのスタンダード版の起動の問題を調べてみましょう。
ベンチマークをすることが目的ではないので詳細なテスト条件は重要ではないのですが、一応以下のような設定を行った環境でテストをしています。

テスト条件
・ Notesプリローダー(nntspreld.exe)はmsconfigで事前に無効化
・ アンチウイルスソフトの設定済み(詳細はこちら
・ JVMの設定は設定済み(詳細はこちら
・ サイドバーの表示は無効化
・ Lotus Notes 8.5.2 + Windows XP SP3
・ OS起動直後のNotes起動(いわゆるコールドスタート)

Process Monitorでは初めにログの負荷を下げるためにFilter条件を決めることが重要です。
ここではNotes関連プロセスのログを取りたいので以下のようなFilter 条件で取得します。

Process Monitor フィルター式


今回指定したFilterは以下のような感じです。実質的にはnotes2.exeとnlnotes.exeくらいでいいんじゃないかと思うのですが、念のため。
Process name contains:

notes2.exe
notes.exe
nlnotes.exe
ntaskldr.exe
nsenddiag.exe
nsd.exe
ndyncfg.exe
nfileret.exe


この状態でクリックしてNotesクライアントを起動して、ワークスペースが表示されたくらいでテストを囚虜します。終了するにはメニューから[File]-[Capture Events]のチェックを外すとログが終了します。

このようにして採取したログはどのように解析すればいいのでしょうか?色々な方法がありますが、最近のバージョンのProcess Monitorはレポート機能も非常に充実しているのでその機能を使うのがよいのではないかと思います。始めにFile Summaryを見てみましょう。メニューから[Tools]-[File Summary]を選択して起動します。
以下の画面ショットも参考にしてください。(画像はクリックすると拡大します。)
File Summaryのメニュー

ここではこのようにアクセスしたファイルごとに使用した合計時間を表示してくれます。(Total Time列でソートしました)

File Summary - 出力結果

ファイル名を見てみると *xpdplat_jvm* のようなファイルが多いですが、これはExpeditorクライアントのJVM キャッシュでしょうか。
同様にして[Tools]-[Process Activity Summary] ではプロセスごとにCPU使用率やメモリの使用量などの推移をグラフィカルに表示してくれます。

Process Activity


FileのI/OやCPUの使用率がnotes2.exeに集中している様子が見て分かると思います。

このような分析はNotesクライアント以外でもブラウザの起動が遅い問題を切り分けたり何となくCPU使用率が高いプロセスがどの処理に取られているか辺りを付けたりする上でも非常に有益です。

是非活用してみてください。

LND Toolが Lotus Domino Wiki で紹介されています

2011年05月06日 00:56

以前このブログでもLNDツール (Lotus Notes Diagnostics)について紹介しましたが、Notes And Domino Wikiでも紹介の記事が出ました。

Using the LND tool to analyze IBM Lotus Notes and Domino hangs and crashes (Lotus Notes And Domino Wiki)

SEMDEBUG.TXTのファイル表示の話などを主に取り上げましたが、メモリダンプ(show memory dump や server -m で出力されるファイル)のサマリー表示やサーバー上で生成されるDXLファイルの表示(サーバー文書などの情報をまとめています)など重要な情報収集が行えるツールですのでこのような事に興味がある方は一度使ってみるといいのではないかと思います。

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

Sandboxはどこにいった?

2010年10月11日 00:07

私もすっかり忘れていたのですが、Lotus Sandbox が削除されてしまいました。

Lotus Sandbox archived

今となってはNSFを配布する方法は色々あるので新規を締め切るのは構わないと思うのですが何も削除しなくても・・・て事で戸惑っている方も多いのではないかと思います。

と言うわけで村上さんがアーカイブを公開しているところを見つけていることに気が付いたので、取り急ぎはここから入手するのがよいのではないかと思います。

以下のページの右側のナビゲータから「Notes.net Sandbox zipped」と言うリンクからダウンロードできます。

Notes.Net Sandbox, part 2 (Bananas - bananahome.com)

私の過去の記事ではPanic.exeの話 などがインパクトを受けるのでこれは後でフォローします。

うーん。コメントしづらいですね。。。

8.5.2: Automatic Corrupt Database Collection

2010年09月01日 21:31

今日は8.5.2新機能として、Automatic Database Corruption Toolと言う機能について紹介したいと思います。

Detecting corrupted databases (文書番号 1429891)

データベース破損は発生しないに越したことはないのですが発生時には発生直前直後のDBを採取するのが重要なのですが、いつ発生するか分からないデータベースの退避などは非常に難しいのではないかと思います。
 直前は難しくても発生前、くらいでよければバックアップなどから探せますが、発生直後のFixupが実行される前のDBを入手するための手段としてこの機能が導入されました。

まず簡単に動作を見るため、サーバーコマンドで手動実行してみましょう。

load dbcapture mail.box
Captured database C:\Lotus\Domino\8.5.2\data\mail.box to C:\Lotus\Domino\8.5.2\data\IBM_TECHNICAL_SUPPORT\ACDC\mail.cor


この処理だけでも以下のような動作が分かると思うのではないかと思います。

- load dbcapture で手動実行出来る
- 拡張子を*.corにして、IBM_TECHNICAL_SUPPORT\ACDC ディレクトリに退避する

ただし、「Automatic」Database Corruption Toolですから自動でこれらの処理が実行されなくてはいけません。

この設定は以下のNotes.ini 設定で有効化します。(詳細はTechnoteも見てください)

  DATABASE_CAPTURE_ENABLED=1
(Set con DATABASE_CAPTURE_ENABLED=1で再起動無しで有効化出来ます)

その他の設定は以下の通りです。
DATABASE_CAPTURE_LIMIT: 退避するDBの上限
DATABASE_CAPTURE_SIZE_LIMIT : 退避するDBのサイズの上限 (これ以上のサイズは退避しない)
DATABASE_CAPTURE_DIRECTORY : 退避するディレクトリ

動作を確認するために、メモ帳などでNSFファイルを適当に編集して保存して、意図的にNSFファイルを壊してアクセスしてみましょう。

l fixup mail2.nsf
**** DbInfoIsCorrupt(DbWriteDbInfo: First or Next RRVPos invalid), DB=C:\Lotus\Domino\8.5.2\data\mail2.nsf TID=[00A0:0002-009C] ***
2010/09/01 21:26:17 Database Fixup: Started: mail2.nsf
Captured database C:\Lotus\Domino\8.5.2\data\mail2.nsf to C:\Lotus\Domino\8.5.2\data\IBM_TECHNICAL_SUPPORT\ACDC\mail2.cor
2010/09/01 21:26:17 Database Fixup: Unable to fixup database
C:\Lotus\Domino\8.5.2\data\mail2.nsf: The Notes database file header is corrupted
[00A0:0002-009C] 2010/09/01 21:26:17 Database Fixup: Shutdown


以下のように検知と同時にDBが退避されるのが分かると思います。

Technoteには書いてありますが、DATABASE_CAPTURE_ENABLED=1 は起動時にこの値を検出して設定を有効にすると値を消してしまいます。なので、再起動後は設定が無効になる点は注意してください。(この辺は設定が選べるとよかったのですが)

また、同じファイル名・異なる拡張子の場合バックアップファイル名が同じになってエラーになってしまうのでそのようなファイルを退避したい場合には注意してください(問題報告番号 HNAA88VG8D)

これもバージョンアップの動機になるような新機能ではないですがサポートシーンで問題の早期解決の役に立つことが出てきたらよいな、と思っています。




最新記事