5.10 JavaVMスタックトレース情報
ここでは,スタックトレースに出力される情報のうち,JavaVMで拡張された内容について説明します。
サーバやアプリケーションでトラブルが発生した場合,トラブル発生までのスタックトレースの内容を確認することで,トラブル発生の要因を調査できます。
スタックトレースは,次のどれかのタイミングで出力されます。
-
J2EEサーバまたはJ2EEアプリケーションで例外が発生した場合
-
バッチサーバまたはバッチアプリケーションで例外が発生した場合
-
JavaVMのスレッドダンプが出力された場合
JavaVMでは,サーバを起動するときのオプションの指定によって,スタックトレースにJavaメソッドのローカル変数についての情報を出力できます。例外発生時にJavaメソッドに定義されていたローカル変数の情報は,トラブルの要因を分析するために有効です。
なお,ここで対象にするローカル変数とは,メソッドに渡される引数およびインスタンスメソッドでの呼び出しの対象になるオブジェクト(this)のことです。ローカル変数情報には,これらのローカル変数の変数名,型名,およびローカル変数の値が出力されます。なお,型名は,基本形名,クラス名(インタフェース名を含みます)または配列形名のことです。
スタックトレースにローカル変数情報を出力するためのオプションを,次の表に示します。JavaVMの資料取得の設定については,「3.3.17 JavaVMの資料取得の設定」を参照してください。
次に,それぞれのオプションを指定した場合に出力される内容について,例を基に説明します。それぞれのオプションを指定した時に出力される項目の詳細については,次の個所を参照してください。
-
マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「-XX:[+|-]HitachiLocalsInThrowable(例外発生時のローカル変数情報収集オプション)」
-
マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「-XX:[+|-]HitachiLocalsInStackTrace(スレッドダンプ出力時のローカル変数出力オプション)」