Cosminexus システム運用ガイド
JavaVMでクラッシュが発生した場合,JavaVMによってデバッグ情報が標準出力とエラーリポートファイルに出力されます。
エラーリポートファイルに出力されるのは,次の場合です。
ここでは,次の場合のメッセージログの出力内容について説明します。
メッセージの種類 | 出力先 |
---|---|
JNIの中でのシグナルが発生した場合,またはJavaVMでのメッセージ※ | 標準出力 エラーリポートファイル |
Cヒープが不足した場合のメッセージ※ | 標準出力 エラーリポートファイル |
Internal Errorが発生した場合のメッセージ※ | 標準出力 エラーリポートファイル |
スレッド作成に失敗した場合のメッセージ※ | 標準出力 |
注※ 日立のJavaVM独自の出力先または出力内容があります。
なお,スレッド作成に失敗した場合のメッセージは,標準出力だけに出力されます。
シグナルが発生した場合,次に示す項目がログ出力されます。出力内容には,日立のJavaVMとして拡張された内容が含まれます。
注※ 日立で拡張された出力内容です。
それぞれの出力内容について説明します。
異常終了時の状態に応じて,次のどちらかの内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
# # An unexpected error has been detected by HotSpot Virtual Machine: # # <発生したシグナル名> (<シグナル番号>) at pc=<PCアドレス>, pid=<プロセスID>, tid=<スレッドID> # # Java VM: Java HotSpot(TM) Server VM (1.5.0_05-b05-CDK0700-20051129 mixed mode) # Problematic frame: # <種別コード> [<シグナルが発生したライブラリ名>+<オフセット>] # |
注 シグナルが発生した関数名が取り出せた場合,「<シグナルが発生したライブラリ名>+<オフセット>」に続いて,その関数名とオフセットが表示されることがあります。
# # An unexpected error has been detected by HotSpot Virtual Machine: # # Internal Error (5448524541440E4350500D8F), pid=<プロセスID>, tid=<スレッドID> # # Java VM: Java HotSpot(TM) Server VM (1.5.0_05-b05-CDK0700-20051129 mixed mode) # # Error: 内部論理エラーメッセージ |
次のどちらかの内容が出力されます。
Current thread (<アドレス>): <スレッド名> "<スレッド名称>" [_<状態>, id=<スレッドID>] |
Current thread (<アドレス>): <スレッド名> [_id=<スレッドID>] |
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
siginfo address: <アドレス>, context address: <アドレス> |
次の内容が出力されます。
siginfo: ExceptionCode=<シグナル番号>, reading address <アドレス> |
siginfo: ExceptionCode=<シグナル番号>, writing address <アドレス> |
siginfo: ExceptionCode=<シグナル番号>, ExceptionInformation=<付加情報> |
siginfo: ExceptionCode=<シグナル番号>, ExceptionInformation=<付加情報1> <付加情報2> ・・・ |
siginfo:si_signo=<シグナル番号>, si_errno=<番号>, si_code=<番号>, si_addr=<アドレス> |
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
siginfo structure dump (location: <siginfoのアドレス>) <siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> ... <siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> <siginfoのアドレス> |
注 <siginfoのアドレス>は16進数で出力されます。
次の内容が出力されます。ただし,内部論理エラーの場合は出力されません。
Registers:<レジスタ情報> : |
注 UNIXの場合,BSPレジスタの値がデバッガ(gdb)の値と異なって出力されます。これは,デバッガではBSPの指すバッキングストア領域の内容を出力しており,BSPの指す位置を修正しているためです。
次の内容が出力されます。ただし,内部論理エラーの場合は出力されません。
Top of Stack: (sp=<スタックポインタのアドレス>) <アドレス>: <格納されている内容> : |
注 <格納されている内容>は16進数で出力されます。
次の内容が出力されます。ただし,内部論理エラーの場合は出力されません。
Instructions: (pc=<プログラムカウンタのアドレス>) <アドレス>: <命令コード> : |
注 <命令コード>は16進数で出力されます。
次の内容が出力されます。ただし,Current threadがJavaThread以外の場合は出力されません。
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) <スタックトレース> : |
次の内容が出力されます。
Java Threads: ( => current thread ) <アドレス> JavaThread “<スレッド名称>“ [<状態>, id=<スレッドID>] : =><アドレス> JavaThread “<スレッド名称>“ Other Threads: <アドレス> <スレッド名> [id=<スレッドID>] : |
次の内容が出力されます。
VM state:<現在の状態> VM Mutex/Monitor currently owned by a thread: <mutexs/moniter> |
注 この情報に続いて,ロック情報が出力される場合があります。
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Memory : <メモリ確保関数>:address<開始アドレス> - <終了アドレス>(size:<サイズ>) : Heap Size:<確保しているメモリサイズ> Alloc Size:<使用中のメモリサイズ> Free Size:<未使用のメモリサイズ> |
<メモリ確保関数>は,mmap()またはmalloc()のどちらかです。アドレスは16進数で表示されます。
各種メモリサイズの単位はバイトです。
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Heap <Javaヒープ情報> |
次の内容に続いて,ローディングされているライブラリの一覧が出力されます。
Dynamic libraries: <ライブラリ> : |
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Command : <コマンドライン> Java Home Dir : <JDK実行環境インストールディレクトリ> Java DLL Dir : <JDKのライブラリインストールディレクトリ> Sys Classpath : <システムクラスパス> User Args : <コマンドオプション1> <コマンドオプション2> : |
次の内容が出力されます。
Environment Variables: <環境変数=値> : |
次の内容が出力されます。
Signal Handlers: <シグナル種別>: [<シグナルハンドラアドレス>], sa_mask[0]=<シグナルマスク>, sa_flags=<特殊フラグ> : Changed Signal Handlers - <シグナル種別>: [<シグナルハンドラアドレス>], sa_mask[0]=<シグナルマスク>, sa_flags=<特殊フラグ> : |
出力内容の意味は次のとおりです。
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Host: <ホスト名>:<IPアドレス> |
注 <IPアドレス>には複数のIPアドレスが表示されることがあります。
次の内容が出力されます。
OS: <OSバージョン> CPU: <利用可能CPU数>,<CPU種別> Memory: <実メモリ情報> vm_info: <VM情報> |
OS: <OSバージョン> uname:<uname出力> libc:<libcのバージョン番号>(出力されない場合があります) rlimit:<リミット値> load average:<ロードアベレージ> CPU: <利用可能CPU数>,<CPU種別> Memory: <実メモリ情報> vm_info: <VM情報> |
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
Local Time = <実行日付> Elapsed Time = <実行時間> |
実行日付には出力内容の例を次に示します。
例:「Wed Aug 25 14:55:04 2004」
次の内容が出力されます。この内容は,日立のJavaVMで拡張された出力内容です。
# You can get further information from javatrace.log file generated # by using javatrace command. # usage: javatrace core-file-name loadmodule-name [out-file-name] [-l(library-name)...] # Please use javatrace command as follows and submit a bug report # to Hitachi with javatrace.log file: #[<インストールディレクトリ>/jre/bin/javatrace <coreファイル> <ロードモジュール>] |
Cヒープが不足した場合,次の順序でメッセージ出力およびダンプ出力,またはcoreダンプの生成が実行されます。
それぞれの出力形式を次に示します。
Cヒープ不足を示すメッセージログの出力形式を次に示します。この形式は,エラーリポートファイルと標準出力で共通です。
Exception in thread <ThreadName> java.lang.OutOfMemoryError:requested <n> bytes [ for <message>]. Memory Status ------------- Memory in use :使用率% Physical memory :空きメモリサイズ /総メモリサイズ free Virtual memory :空きメモリサイズ/総メモリサイズ free Paging file :空き容量/総容量 free Heap Status ----------- <Javaヒープ情報> ----------- Stack Trace ----------- <スタックトレース> Insufficient memory for malloc. JVM generates core file. ----------- |
Exception in thread <ThreadName> java.lang.OutOfMemoryError: requested <n> bytes [for <message>]. Memory Status ------------- maximum size of data segment soft(current) limit :getrlimit(RLIMIT_DATA)で取得したソフトリミット値 kbytes (16進数) hard limit :getrlimit(RLIMIT_DATA)で取得したハードリミット値 kbytes (16進数) current end of the heap :sbrk(0)によって取得した値 JVM allocation size by malloc :JavaVMが割り当てたメモリサイズ kbytes (16進数) malloc information total space in arena :mallinfo.arenaの値 number of ordinary blocks :mallinfo.ordblksの値 number of small blocks :mallinfo.smblksの値 number of holding blocks :mallinfo.hblksの値 space in holding block headers :mallinfo.hblkhdの値 space in small blocks in use :mallinfo.usmblksの値 space in free small blocks :mallinfo.fsmblksの値 space in ordinary blocks in use :mallinfo.uordblksの値 space in free ordinary blocks :mallinfo.fordblksの値 cost of enabling keep option :mallinfo.keepcostの値 Heap Status ----------- <Javaヒープ情報> ----------- Stack Trace ----------- <スタックトレース> ----------- |
Exception in thread <ThreadName> java.lang.OutOfMemoryError: requested <n> bytes [for <message>]. Heap Status ----------- <Javaヒープ情報> ----------- Stack Trace ----------- <スタックトレース> ----------- |
このようなメッセージが出力された場合は,Cヒープを減らすなど,適切な対策をしてください。
出力項目について次に示します。
表5-71 Cヒープが不足した場合のメッセージログの出力項目
出力項目 | 説明 |
---|---|
ThreadName | Thread#getName()メソッドで取り出せるスレッド名称が出力されます。 |
n | メモリ確保要求サイズが出力されます。 |
message | 保守員による調査に必要な内部メッセージが出力されます。出力されない場合もあります。 |
Javaヒープ情報 | Javaヒープの使用状況が出力されます。 |
スタックトレース | メモリ不足の発生したスレッドがJava コードを実行しているスレッドである場合に,スタックトレースが出力されます。 コンパイル処理のようなJavaVMの内部処理を実行するスレッドでメモリ不足が発生した場合には出力されません。 |
Cヒープ不足を示すメッセージログが出力されている間にさらにメモリ不足が発生した場合は,処理の続行ができません。この場合は,次の形式の簡易メッセージが標準出力に出力されます。
java.lang.OutOfMemoryError:requested <n> bytes for <message> |
出力項目について次に示します。
表5-72 メモリ不足が発生した場合の簡易メッセージの出力項目
出力項目 | 説明 |
---|---|
n | メモリ確保要求サイズが出力されます。 |
message | 保守員による調査に必要な内部メッセージが出力されます。 |
簡易メッセージの出力後は,ワトソンログが起動され,ダンプ出力が実行されます。ただし,ワトソンログが正常に出力できない場合がありますので,標準出力に出力される処理結果のメッセージを確認してください。
次のメッセージは,ワトソンログの起動に失敗した場合に出力されます。
WatosonLog process generated.But couldn't generate dump file,because of resource shortage. |
次のメッセージは,ワトソンログの起動後,ダンプ出力に失敗した場合に出力されます。
Couldn't generate dump file,because of resource shortage. |
これらの処理に成功した場合は,次に示すメッセージが出力されます。ただし,この場合もワトソンログが正常にダンプ出力しない場合があります。このメッセージが出力された場合も,実際にダンプが出力されているかどうかを確認してください。
Although Dr.Watson process finished successfully,dump file isn't always generated. Check your directory where dump file is stored. |
簡易メッセージの出力処理中にさらにメモリ不足が発生した場合,メッセージおよびエラーログファイルの出力処理を中止して,coreダンプを生成します。coreダンプが生成されると,次の形式のメッセージが標準出力に出力されます。
Can't create logs because of memory shortage. Insufficient memory for malloc. JVM generates core file |
JavaVM内部の論理エラーであるInternal Errorが発生した場合,次の情報が出力されます。
注※ 日立で拡張された出力内容です。
それぞれの情報の出力形式については,「(1)シグナルが発生した場合」を参照してください。
メモリ不足(OutOfMemoryError)などが発生して新しくスレッドを作成できなかった場合,その時点でのスレッド数が,標準出力に出力されます。ここには,作成に失敗したスレッド数も含まれます。
メモリ不足などによってスレッドの作成に失敗した場合の出力例を次に示します。
java.lang.OutOfMemoryError:unable to create new native thread.1200 threads exist. … |
JavaVM起動時にスレッド作成に失敗した場合の出力例を次に示します。
Error occurred during initialization of VM Could not create thread for VM:VM Thread.5 threads exist. |
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.