Cosminexus システム運用ガイド

[目次][用語][索引][前へ][次へ]

5.4.7 メモリダンプの取得

J2EEサーバまたはCORBAネーミングサービスを再起動する場合は,メモリダンプとして次のファイルを取得します。

これらのファイルは,システムでトラブルが発生したときに,保守員が障害を解析するために使用します。

<この項の構成>
(1) ユーザダンプの取得(Windowsの場合)
(2) J2EEサーバのメモリダンプの取得
(3) CORBAネーミングサービスのメモリダンプの取得

(1) ユーザダンプの取得(Windowsの場合)

プロセスダウンが発生した場合に次のファイルがあれば採取します。

<ワトソン博士のクラッシュダンプ出力先指定ディレクトリ>は,ワトソン博士(drwtsn32)を実行してクラッシュダンプ欄のパスを確認してください。

プロセスのハングアップやスローダウンが発生した場合にユーザダンプを取得するときは,プロセスIDを確認してuserdump.exeコマンドを実行します。userdump.exeは,Microsoftによって提供されているコマンドです。

 
userdump.exe <プロセスID>

userdump.exeコマンドでユーザダンプを取得した場合,ユーザダンプはuserdump.exeを実行したカレントディレクトリに出力されます。

(2) J2EEサーバのメモリダンプの取得

J2EEサーバのメモリダンプの取得について,OSごとに説明します。

(a) Windowsの場合

J2EEサーバが稼働している場合(cjstartsvプロセスが存在する場合),タスクマネージャからcjstartsvのプロセスIDを取得します。userdump.exe <プロセスID>を実行し,メモリダンプ(user.dump)を採取します。

(b) UNIXの場合

cjstartsvプロセスがダウンした場合,「<作業ディレクトリ>/ejb/<サーバ名称>」に出力されたcoreダンプを取得します。

coreダンプのファイル名は,cjstartsvプロセスの再起動時に「core.<出力日時>」(AIX,HP-UX,Solarisの場合)または「core.<プロセスID>.<出力日時>」(Linuxの場合)にリネームされます。cjstartsvプロセスの再起動時にcoreダンプが上書き保存されないため,障害発生時のcoreダンプを保存できます。

注※
出力日時は「YYMMDDhhmmss」の形式で出力されます。
YY:西暦(下2けた) MM:月(2けた) DD:日(2けた)
hh:時(24時間表記で2けた) mm:分(2けた) ss:秒(2けた)

なお,保存するcoreダンプは上限値を設定できます。Windowsの場合,cjstartsvプロセスの再起動時,およびjavacoreコマンド実行時に,出力日時が古い順に削除されます。UNIXの場合,「<作業ディレクトリ>/ejb/<サーバ名称>」に出力されるcoreダンプファイルの合計が上限値を超えたときに,出力日時が古い順に削除されます。上限値は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,J2EEサーバの拡張パラメタのejb.server.corefilenumで指定します。なお,ファイルの削除はcjstartsvプロセスの再起動時に実行されます。coreダンプファイル数の上限値の設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。

coreダンプを取得したあとに,coreダンプからスタックトレース情報だけを取得する場合は,javatraceコマンドを実行してください。スタックトレース情報は,JavaVMの異常終了の原因を究明するために必要な情報です。スタックトレース情報の取得方法については,「5.4.16 JavaVMのスタックトレース情報の取得」を参照してください。

coreダンプは次のような場合にも取得できます。それぞれの場合の取得方法について説明します。

(3) CORBAネーミングサービスのメモリダンプの取得

CORBAネーミングサービスのメモリダンプの取得についてOSごとに説明します。

(a) Windowsの場合

CORBAネーミングサービスが稼働している場合(CORBAネーミングサービスのプロセスが存在する場合),userdump.exe <プロセスID>を実行し,メモリダンプ(user.dump)を採取します。CORBAネーミングサービスのプロセスIDはあらかじめタスクマネージャで確認します。

(b) UNIXの場合

CORBAネーミングサービスが稼働している場合(CORBAネーミングサービスのプロセスが存在する場合),CORBAネーミングサービスのプロセスIDを確認して,killコマンドを実行します。killコマンドは次の形式で実行してください。なお,killコマンドを実行するとプロセスが終了するため,再起動する前にkillコマンドを実行することを推奨します。

 
ps -ef | grep java
kill -6 <CORBAネーミングサービスのプロセスID>