ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express チューニングガイド
FUJITSU Software

8.5.9 クラッシュダンプ・コアダンプ

  Javaアプリケーションが異常終了(プロセスが消滅)したときに、各OS上に用意されたクラッシュダンプやコアダンプを採取することにより、異常終了の原因を調査することができる場合があります。

8.5.9.1 クラッシュダンプ

  ここでは、Windows(R)上で異常を調査する場合に採取する、クラッシュダンプの採取方法を説明します。

ワトソン博士について

  ワトソン博士はMicrosoft Corporationのソフトウェアで、プログラムエラーのためのデバッガです。
  プログラムエラーが発生すると、ワトソン博士が自動的にログファイルにデバッグ情報を出力します。なお、ログファイル名は、「drwtsn32.log」です。また、ログファイルの出力先は、ワトソン博士を起動して、設定することができます。
  ワトソン博士の詳細は、Microsoft CorporationのWebページを参照してください。

ワトソン博士の設定

  クラッシュダンプの採取には、Windows(R)に同梱されている「ワトソン博士」を使用します。
  次の例を参考にして、「ワトソン博士」を設定してください。この設定を行うことにより、異常終了時に、自動的にクラッシュダンプが出力されるようになります。

ワトソン博士の設定例 (Windows Server(R) 2003、Windows(R) XPの場合)

  1. MS-DOSコマンドプロンプトなどで“drwtsn32 -i”コマンドを投入します。[ワトソン博士が既定のアプリケーション デバッガとしてインストールされました。]のメッセージが表示されます。

  2. 更に、MS-DOSコマンドプロンプトなどで、“drwtsn32”コマンドを実行します。[Windows ワトソン博士]の設定画面が表示されますので、以下を確認してください。

    • [ログファイルパス(L)]、[クラッシュダンプ(P)]が正しく指定されているか

    • [クラッシュダンプの種類(Y)]を[完全]と設定しているか

    • [すべてのスレッド コンテキストをダンプ(A)]のチェックボックスがチェックされているか

    • [既定のログ ファイルに追加(E)]のチェックボックスがチェックされているか

    • [メッセージ ボックスによる通知(U)]のチェックボックスがチェックされているか

    • [クラッシュ ダンプ ファイルの作成(T)]のチェックボックスがチェックされているか

Windows Server(R) 2003 x64 Editionの場合

  32ビットモード版のワトソン博士の環境設定を行う場合は、MS-DOSコマンドプロンプトなどで“%SystemRoot%\SysWow64\drwtsn32”コマンドを実行し、上述と同様の設定をしておく必要があります。

Windows(R) XP/Windows Server(R) 2003 以外の場合

ワトソン博士の機能が提供されていません。
ワトソン博士の代わりにWindowsエラー報告(Windows Error Reporting(WER))の機能を使用します。
次の例を参考にして、WERを設定してください。

WERの設定例

  1. MS-DOSコマンドプロンプトなどで“regedit”コマンドを投入し、レジストリエディタを起動します。

  2. 「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps」キーを作成します。

  3. LocalDumpsキーにREG_DWORD型でDumpTypeという値を作成し、「2」を設定します。


  WERに関する設定の方法については、以下の情報も参照ください。

注意事項

  Windows Server(R) 2003の初期版においては、ユーザダンプが出力されない問題をはじめとして、その他にもJavaの実行動作に影響を及ぼす問題などがあります。
  たとえば、次のような問題があります。

  Windows Server(R) 2003を使用する場合は、Service Pack 1以降またはHotfixを適用してください。

8.5.9.2 コアダンプ(Solaris)

  ここでは、Solaris上でのコアダンプ採取のための注意事項を説明します。

コアダンプが出力されない場合の確認

  コアダンプが出力されない場合の原因として、システムリソース等の問題がまず考えられます。カレントディレクトリの書込み権、ディスク容量、limit(1)コマンド結果を確認してください。

8.5.9.3 コアダンプ(Linux)

  ここでは、Linux上でのコアダンプ採取のための注意事項を説明します。

コアダンプが出力されない場合の確認

  コアダンプが出力されない場合の原因として、システムリソース等の問題がまず考えられます。カレントディレクトリの書込み権、ディスク容量、limit(1)コマンド結果を確認してください。

  また、Linuxではハード/OSの出荷時もしくはOSのUpdate適用により、デフォルトでコアダンプの出力が設定されていない場合があります。以下を実施してコアダンプが出力されるようにしてください。

《コアダンプ出力設定方法》

sh(bash)で"ulimit -c unlimited"コマンド実行後、Interstageを起動させます。ワークユニット起動ユーザがInterstage起動ユーザと違う場合は、ワークユニット起動前に"ulimit -c unlimited"コマンドを実行してから、ワークユニットを起動させます。

以下の方法を実施することで、OS再起動後にcoreが出力されるようになります。

/etc/init.d/functionsファイルに、

# make sure it doesn't core dump anywhere; while this could mask
# problems with the daemon, it also closes some security problems
ulimit -S -c 0 >/dev/null 2>&1
  または、
ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} >/dev/null 2>1

と記述されていますので、上記の設定で"0"を、"unlimited"に変更してください。

ulimit -S -c unlimited >/dev/null 2>&1

/etc/rc2.d/S99startisに、以下の<---の記述を追加してください。

#!/bin/sh# Interstage Application Server
# S99starttis : Interstage Application Server start procedure

OD_HOME=/opt/FJSVod
export OD_HOME

ulimit -c unlimited   <---

/opt/FJSVod/bin/odalive > /dev/null
while [ "$?" != "0" ]
do
    sleep 1
    /opt/FJSVod/bin/odalive > /dev/null
done

/opt/FJSVtd/bin/isstart