8.28.2 取得できるトレース情報

ユーザ拡張性能解析トレースのトレース情報について説明します。

<この項の構成>
(1) ユーザ拡張性能解析トレースのトレース情報
(2) 出力レベル
(3) ユーザ拡張性能解析トレースの出力例

(1) ユーザ拡張性能解析トレースのトレース情報

ユーザ拡張性能解析トレースのトレース情報を次の表に示します。

表8-191 ユーザ拡張性能解析トレースのトレース情報

図中の番号※1取得できる情報
イベントID
(Event)
リターンコード(Rc)インタフェース名(INT)オペレーション情報(OPR)付加情報※2
(OPT/ASCII※3
1ユーザ拡張性能解析トレース設定ファイルで指定したイベントID。
指定しない場合は,0xae00。
0ユーザ拡張性能解析トレース設定ファイルでユーザが指定した識別ID。次の情報が出力されます。
  • パッケージ名
  • クラス名
  • メソッド名
2ユーザ拡張性能解析トレース設定ファイルで指定したイベントIDに+ 1した値。
指定しない場合は,0xae01。
0ユーザ拡張性能解析トレース設定ファイルでユーザが指定した識別ID。メソッドの最後に実行した文の行番号※4次の情報が出力されます。
  • パッケージ名
  • クラス名
  • メソッド名
3ユーザ拡張性能解析トレース設定ファイルで指定したイベントIDに+1した値。
指定しない場合は,0xae01。
1ユーザ拡張性能解析トレース設定ファイルでユーザが指定した識別ID。例外またはエラーのクラス名※5次の情報が出力されます。
  • パッケージ名
  • クラス名
  • メソッド名

(凡例)-:出力なし。

注※1 図8-119中の番号と対応しています。

注※2 ユーザ拡張性能解析トレースは,jvm.userprf.LogLevelプロパティに指定した出力レベルでメソッド名を出力します。出力レベルと各レベルで出力される情報については,「(2) 出力レベル」を参照してください。

注※3 ASCII領域に出力され付加情報が,ASCII文字で256文字を超えていた場合,前から256文字が出力されます。

注※4 jvm.userprf.LineNumberプロパティにtrueを指定した場合に出力されます。jvm.userprf.LineNumberプロパティについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.3 JavaVMで使用するプロパティ」を参照してください。

注※5 jvm.userprf.ThrowableNameプロパティにtrueを指定した場合,jvm.userprf.LogLevelプロパティに指定した出力レベル,およびjvm.userprf.ThrowableNameEditMethodプロパティに指定した編集方法でクラス名が出力されます。jvm.userprf.ThrowableNameプロパティおよびjvm.userprf.ThrowableNameEditMethodプロパティについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.3 JavaVMで使用するプロパティ」を参照してください。


(2) 出力レベル

jvm.userprf.LogLevelプロパティで,ユーザ拡張性能解析トレースのトレース情報の出力レベルを指定します。

出力レベルと出力されるトレース情報を次の表に示します。

表8-192 出力レベルの指定とトレース出力情報

jvm.userprf.LogLevelプロパティの指定付加情報(OPT/ASCII)メソッドの異常出口のオペレーション情報(OPR)
classクラス名例外またはエラーのクラス名
package完全修飾クラス名例外またはエラーの完全修飾クラス名
method完全修飾クラス名+メソッド名
signature完全修飾クラス名+メソッド名+メソッドの引数の型

jvm.userprf.LogLevelプロパティについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.3 JavaVMで使用するプロパティ」を参照してください。

(3) ユーザ拡張性能解析トレースの出力例

ユーザ拡張性能解析トレースの出力例を次に示します。

●トレース情報の出力内容を変更しない場合の例

トレース情報の出力内容を変更しない場合の設定例を次に示します。

簡易構築定義ファイルの設定例


<param>
<param-name>UserPrfText</param-name>
<param-value>
<![CDATA[
com.sample.ClassA.method1(int),test00,false
]]>
</param-value>
</param>
<param>
<param-name>add.jvm.arg</param-name>
<param-value>-Djvm.userprf.Enable=true</param-value>
</param>

出力内容
EventRcINTOPRASCII
0xae000test00(空白)ClassA
0xae010test00(空白)ClassA
この例では,次のようにトレース情報が出力されます。
  • トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。
●オペレーション情報に行番号を出力する場合の例

ユーザ拡張性能解析トレース設定ファイル(/test/setting.txt)を使用して,オペレーション情報に行番号を出力する場合の設定例を次に示します。

簡易構築定義ファイルの設定例


<param>
<param-name>add.jvm.arg</param-name>
<param-value>-Djvm.userprf.Enable=true</param-value>
<param-value>-Djvm.userprf.File=/test/setting.txt</param-value>
<param-value>-Djvm.userprf.LineNumber=true</param-value>
</param>

ユーザ拡張性能解析トレース設定ファイル(setting.txt)の設定例

com.sample.ClassA.method1(java.lang.String),test00,false,0xae77
com.sample.ClassB.method2(boolean),test01.false

出力内容
この例ではjvm.userprf.LineNumber=trueを指定しているため,メソッド正常出口でオペレーション情報(OPR領域)に,各メソッドの最後に実行された行番号が出力されます。
EventRcINTOPRASCII
0xae770test00(空白)ClassA
0xae780test00324ClassA
0xae000test01(空白)ClassB
0xae010test0115ClassB
この例では,次のようにトレース情報が出力されます。
  • ユーザ拡張性能解析トレース設定ファイルの2行目の設定では,トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。
●発生した例外またはエラーのクラス名を出力する場合の例

例外のクラス名をメソッド異常出口のオペレーション情報(OPR領域)に出力する場合の設定例を次に示します。なお,この例ではClassAのサブクラスにClassCが存在し,ClassCでClassA.method1をオーバーライドしている場合について説明します。

簡易構築定義ファイルの設定例


<param>
<param-name>UserPrfText</param-name>
<param-value>
<![CDATA[
com.sample.ClassA.method1(),test00,true,0xae0a
]]>
</param-value>
</param>
<param>
<param-name>add.jvm.arg</param-name>
<param-value>-Djvm.userprf.Enable=true</param-value>
<param-value>-Djvm.userprf.LineNumber=true</param-value>
<param-value>-Djvm.userprf.ThrowableName=true</param-value>
</param>

出力内容
EventRcINTOPRASCII
0xae0a0test00(空白)ClassA
0xae0b0test00324ClassA
0xae0a0test00(空白)ClassC
0xae0b1test00IOExceptionClassC
この例では,次のようにトレース情報が出力されます。
  • サブクラスフラグにtrueを設定しているため,ClassA.method1をオーバーライドしているClassC.method1の情報も出力されます。
  • jvm.userprf.LineNumber=trueを指定しているため,メソッド正常出口のオペレーション情報(OPR領域)に,各メソッドの最後に実行された行番号が出力されます。
  • jvm.userprf.ThrowableName=trueを設定しているため,発生した例外のクラス名がメソッド異常出口のオペレーション情報(OPR領域)に出力されます。ただし,jvm.userprf.LogLevelプロパティを指定していないため,発生した例外のクラス名だけが出力されます。
●発生した例外またはエラーのクラス名の出力方式を変更した例

発生した例外またはエラーのクラス名の出力方式を変更した場合の設定例を次に示します。

簡易構築定義ファイルの設定例


<param>
<param-name>UserPrfText</param-name>
<param-value>
<![CDATA[
com.sample.ClassA.method1(),test00,false
]]>
</param-value>
</param>
<param>
<param-name>add.jvm.arg</param-name>
<param-value>-Djvm.userprf.Enable=true</param-value>
<param-value>-Djvm.userprf.ThrowableName=true</param-value>
<param-value>-Djvm.userprf.ThrowableNameEditMethod=FRONT_CUT</param-value>
<param-value>-Djvm.userprf.LogLevel=method</param-value>
</param>

出力内容
EventRcINTOPRASCII
0xae000test00(空白)com.sample.ClassA.method1
0xae011test00*ment.IllegalClassFormatExceptioncom.sample.ClassA.method1
この例では,次のようにトレース情報が出力されます。
  • トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。
  • jvm.userprf.ThrowableName=trueを指定しているため,発生した例外またはエラーのクラス名がメソッドの異常出口のオペレーション情報(OPR領域)に出力されます。ただし,発生した例外名が33文字以上で,jvm.userprf.ThrowableNameEditMethod=FRONT_CUTを指定しているため,前方が省略されて出力されます。省略された部分は「*」で表示されます。
  • jvm.userprf.LogLevel=methodを指定しているため,付加情報(ASCII領域)に完全修飾クラス名+メソッド名が出力されます。