Sun Java System Directory Server Enterprise Edition 6.3 トラブルシューティングガイド

クラッシュに関するデータの収集

この節では、サーバーがクラッシュしたときに収集する必要のあるデータについて説明します。収集すべきもっとも重要なデータは、コアファイルです。


注 –

クラッシュした Directory Server プロセスについて Sun サポートセンターに連絡する場合、コアファイルとログを提出する必要があります。


コアファイルの生成

コアファイルおよびクラッシュダンプは、プロセスまたはアプリケーションが異常終了したときに生成されます。サーバーがクラッシュしたときに Directory Server がコアファイルを生成できるように、システムを設定します。コアファイルには、クラッシュ時の Directory Server プロセスのスナップショットが含まれます。これは、クラッシュの原因を特定するために不可欠な場合があります。コアファイルは errors ログと同じディレクトリに書き込まれます。デフォルトでは、このディレクトリは instance-path /logs/ です。コアファイルにはエントリキャッシュが含まれるため、サイズが非常に大きくなる場合があります。

コアファイルが自動的に生成されない場合は、次の表に示すコマンドを使用してコアダンプを許可するようにオペレーティングシステムを設定してから、次のクラッシュを待ってデータを取得します。

Solaris 

coreadm

または、 


ulimit -c unlimited
ulimit -H -c unlimited

Linux 


ulimit -c unlimited
ulimit -H -c unlimited

HPUX/AIX 

ulimit -c

Windows 

Windows crashdump

たとえば Solaris OS では、次のコマンドを使用してアプリケーションのコアファイル生成を有効にします。


# coreadm -g /path-to-file/%f.%n.%p.core -e global -e process \
 -e global-setid -e proc-setid -e log

path-to-file には、生成するコアファイルのフルパスを指定します。ファイルの名前には、実行可能ファイル名 (%f)、システムノード名 (%n)、およびプロセス ID (%p) が使用されます。

コアファイル生成を有効にしてもシステムがコアファイルを生成しない場合は、オペレーティングシステムで設定されているファイルサイズ書き込み制限の変更が必要な可能性があります。次に示すように ulimit コマンドを使用して、コアファイルおよびスタックセグメントの最大サイズを変更します。


# ulimit -c unlimited 
# ulimit -s unlimited

次に示すように -a オプションを使用して、制限が正しく設定されていることを確認します。


# ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         unlimited
stack(kbytes)        unlimited
coredump(blocks)     unlimited
nofiles(descriptors) 256
vmemory(kbytes)      unlimited

Red Hat Linux および Windows でのコアファイル生成の設定については、『Sun Gathering Debug Data for Sun Java System Directory Server 5』「Configuring the Operating System to Generate Core Files」を参照してください。

次に、kill -11 process-id コマンドを使用して、アプリケーションがコアファイルを生成可能であることを確認します。コアの生成先は、指定したディレクトリ内またはデフォルトの instance-name/logs ディレクトリ内になります。


# cd /var/cores
# sleep 100000 &
[1] process-id
# kill -11 process-id
# ls

コアライブラリと共用ライブラリの取得

コアファイルを分析するため、slapd プロセスに関連付けられたすべてのライブラリおよびバイナリを取得します。pkg_app スクリプトを使用してライブラリを収集します。pkg_app スクリプトは、実行可能ファイルとそのすべての共用ライブラリを、圧縮された 1 つの tar ファイルにパッケージ化します。アプリケーションのプロセス ID、および開くコアファイルの名前 (必要な場合) を指定します。pkg_app スクリプトの詳細については、「Solaris での pkg_app スクリプトの使用」を参照してください。

superuser として、pkg_app スクリプトを次のように実行します。


# pkg_app server-pid core-file

注 –

コアファイルを指定せずに pkg_app スクリプトを実行することもできます。これにより、スクリプトの出力サイズが小さくなります。あとで、変数をコアファイルの正しい場所に設定する必要があります。


補足情報

問題発生時に作成されたログファイルを表示するには、次のファイルを確認します。


# install-path/instance-name/logs/errors*
# install-path/instance-name/logs/access*

クラッシュが、オペレーティングシステムのディスクまたはメモリー容量の不足に関連するものである場合は、システムログを取得します。たとえば、Solaris OS では、 /var/adm/messages ファイルおよび /var/log/syslogs ファイルを参照して、ハードウェアまたはメモリーの障害を確認します。

完全な出力を取得するには、次のコマンドを使用します。


# cd install-path/bin/slapd/server
# ./ns-slapd -D install-path/instance-name -V