スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NSD: Shared OS fields (MM/OS structure)

2009年07月09日 00:12

今日はNSD の中でも、Shared OS Fields についてお話します。
この呼び名は、6.5.4以前のNSDで使われていたもので、6.5.5以降ではこのセクションは MM/OS tructure と呼ばれています。

 なんだか全然違う名前に変わっているし、どちらも名前からが意味を想像しにくくて分かりにくいのですが、クラッシュのNSDでは、ここは「クラッシュ情報」のようなものを表示するセクションだと思ってください。
 それにしても何でこのような名前なのでしょうか。どちらも「OS」と言う言葉が使われていますが、やはり大多数の人がこの名前を聞くと、オペレーティングシステムの事を想像してしまいますが、実はそうではありません。
 実際には、OSと言うのは、NOS = Notes Object Service の意味で使われています。これがNotesではメモリー管理やスレッド管理などを担って結果としてOSの違いを吸収するレイヤーになるので、オペレーティングシステムと誤解してもある程度意味が通ってしまうのですが、この辺もつまづきのもとですね。
 もう一つ出てきた「MM」はもちろん「マジむかつく」の意味ではなく、「Domino Memory Management」の意味になります。これを統括する部分はMMM (MM Manager)と呼ばれたりします。
 つまり、このセクションは、MMやOSと言う重要な構造体のサマリー情報を表示する事を目的としている部分です。結果としてクラッシュなどの重要な情報も含んでいます。

出力を見てみましょう。

 6.5.4以前
------ Shared OS Fields -------

Start Time = 11/16/2005 07:54:40 PM
Crash Time = 11/16/2005 08:04:07 PM
SharedDPoolSize = 1000000
FaultRecovery = 0x00010013
Thread [ nAMgr:0bb8:0002]/[ nAMgr:0bb8:0b1c] (bb8/2/b1c)
caused Static Hang to be set
ConfigFileSem = ( SEM:#0:0x010d) n=0, wcnt=-1, Users=-1, Owner=[]
FDSem = ( RWSEM:#11:0x410f) rdcnt=-1, refcnt=0 Writer=[] n=11, wcnt=-1, Users=0, Owner=[]


新しいバージョンのものは例によって自分のクライアント環境のものを使います。
 6.5.5以降
<@@ ------ Notes Data -> OS Data -> MM/OS Structure Information (Time 08:44:37) ------ @@>

Start Time = 2009/06/25 01:39:19
Crash Time = 2009/06/25 08:44:14
Console Log Enabled = 1
Console Position = 791
Error Message = PANIC: 01:92
Console Position = 791
SharedDPoolSize = 4194304
FaultRecovery = 0x00010c01
Cleanup Script Timeout= 300
Crash Limits = 0 crashes in 0 minutes
StaticHang = Virtual Thread [ nlnotes: 1340: 0002] (Native thread [ nlnotes: 1340: 12d0]) (0x1340/0x2/0x12d0)
ConfigFileSem = ( SEM:#0:0x010d) n=0, wcnt=-1, Users=-1, Owner=[ : 0000]
FDSem = ( RWSEM:#52:0x410f) rdcnt=-1, refcnt=0 Writer=[ : 0000], n=52, wcnt=-1, Users=0, Owner=[ : 0000]

色々気になる部分もあると思いますが、このセクションからは、Start Time や Crash Time、Fatal Thread 情報、Panic メッセージを確認します。
 Fatal Thread 情報はこのセクションで確認すると、仮想スレッドとネイティブスレッドの情報を一度に確認できます。
 Panicなどが出ている場合には、

Error Message = PANIC: LookupHandle: handle out of range

 のように表示されたりしますのでここの情報を確認します。


あまり頻度は多くありませんが、クラッシュしたNSDでは複数のFatalスレッドが見えることがあります。その場合には理論上はこのセクションを見て最初にFatalスレッドが発生したスレッドを確認することが出来ます。
 しかしながら、6.5.4 以前ではWindows 版のNSDではこの部分に最後にFatal スレッドを出したスレッドを記録してしまうのでこの場合にはプロセスツリーを見て、nsd.exe の親プロセスとなっているプロセスを確認します。

表示されている情報を見ると、こんなセクションをあえて見ることは無いだろう、と思ってしまうかもしれないですが、意外とここはサポートでも参照しているのです。




コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/188-4234118c
    この記事へのトラックバック


    最新記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。