J2EEサーバのメモリダンプの取得について,OSごとに説明します。
J2EEサーバが稼働している場合(cjstartsvプロセスが存在する場合),タスクマネージャからcjstartsvのプロセスIDを取得します。userdump.exe <プロセスID>を実行し,メモリダンプ(user.dump)を採取します。
cjstartsvプロセスがダウンした場合,「<作業ディレクトリ>/ejb/<サーバ名称>」に出力されたcoreダンプを取得します。
coreダンプのファイル名は,cjstartsvプロセスの再起動時に「core.<出力日時※>」(AIX,HP-UX,Solarisの場合)または「core.<プロセスID>.<出力日時※>」(Linuxの場合)にリネームされます。cjstartsvプロセスの再起動時にcoreダンプが上書き保存されないため,障害発生時のcoreダンプを保存できます。
なお,保存するcoreダンプは上限値を設定できます。Windowsの場合,cjstartsvプロセスの再起動時,およびjavacoreコマンド実行時に,出力日時が古い順に削除されます。UNIXの場合,「<作業ディレクトリ>/ejb/<サーバ名称>」に出力されるcoreダンプファイルの合計が上限値を超えたときに,出力日時が古い順に削除されます。上限値は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,J2EEサーバの拡張パラメタのejb.server.corefilenumで指定します。なお,ファイルの削除はcjstartsvプロセスの再起動時に実行されます。coreファイルのファイル数の上限値の設定については,「3.3.18 coreダンプ取得の設定」を参照してください。
coreダンプを取得したあとに,coreダンプからスタックトレース情報だけを取得する場合は,javatraceコマンドを実行してください。スタックトレース情報は,JavaVMの異常終了の原因を究明するために必要な情報です。スタックトレース情報の取得方法については,「4.18 JavaVMのスタックトレース情報」を参照してください。
coreダンプは次のような場合にも取得できます。それぞれの場合の取得方法について説明します。
kill -6 <cjstartsvのプロセスID> |
javacore <-プロセスID> |
send SIGQUIT to 8662: ? (y/n) |
Now generating core file (javacore8662.030806215140.core)... |