8.25.2 取得できるトレース情報
ユーザ拡張性能解析トレースのトレース情報について説明します。
(1) ユーザ拡張性能解析トレースのトレース情報
ユーザ拡張性能解析トレースのトレース情報を次の表に示します。
図中の番号※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。 |
次の情報が出力されます。
|
(2) 出力レベル
jvm.userprf.LogLevelプロパティで,ユーザ拡張性能解析トレースのトレース情報の出力レベルを指定します。
出力レベルと出力されるトレース情報を次の表に示します。
jvm.userprf.LogLevelプロパティの指定 |
付加情報(OPT/ASCII) |
メソッドの異常出口のオペレーション情報(OPR) |
---|---|---|
class |
クラス名 |
例外またはエラーのクラス名 |
package |
完全修飾クラス名 |
例外またはエラーの完全修飾クラス名 |
method |
完全修飾クラス名+メソッド名 |
|
signature |
完全修飾クラス名+メソッド名+メソッドの引数の型 |
jvm.userprf.LogLevelプロパティについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「14.3 JavaVMで使用するプロパティ」を参照してください。
(3) ユーザ拡張性能解析トレースの出力例
ユーザ拡張性能解析トレースの出力例を次に示します。
(a) トレース情報の出力内容を変更しない場合の例
トレース情報の出力内容を変更しない場合の設定例を次に示します。
- 簡易構築定義ファイルの設定例
: <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> :
- 出力内容
-
Event
Rc
INT
OPR
ASCII
0xae00
0
test00
(空白)
ClassA
0xae01
0
test00
(空白)
ClassA
この例では,次のようにトレース情報が出力されます。
-
トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。
-
(b) オペレーション情報に行番号を出力する場合の例
ユーザ拡張性能解析トレース設定ファイル(/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領域)に,各メソッドの最後に実行された行番号が出力されます。
Event
Rc
INT
OPR
ASCII
0xae77
0
test00
(空白)
ClassA
0xae78
0
test00
324
ClassA
0xae00
0
test01
(空白)
ClassB
0xae01
0
test01
15
ClassB
この例では,次のようにトレース情報が出力されます。
-
ユーザ拡張性能解析トレース設定ファイルの2行目の設定では,トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。
-
(c) 発生した例外またはエラーのクラス名を出力する場合の例
例外のクラス名をメソッド異常出口のオペレーション情報(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> :
- 出力内容
-
Event
Rc
INT
OPR
ASCII
0xae0a
0
test00
(空白)
ClassA
0xae0b
0
test00
324
ClassA
0xae0a
0
test00
(空白)
ClassC
0xae0b
1
test00
IOException
ClassC
この例では,次のようにトレース情報が出力されます。
-
サブクラスフラグにtrueを設定しているため,ClassA.method1をオーバーライドしているClassC.method1の情報も出力されます。
-
jvm.userprf.LineNumber=trueを指定しているため,メソッド正常出口のオペレーション情報(OPR領域)に,各メソッドの最後に実行された行番号が出力されます。
-
jvm.userprf.ThrowableName=trueを設定しているため,発生した例外のクラス名がメソッド異常出口のオペレーション情報(OPR領域)に出力されます。ただし,jvm.userprf.LogLevelプロパティを指定していないため,発生した例外のクラス名だけが出力されます。
-
(d) 発生した例外またはエラーのクラス名の出力方式を変更した例
発生した例外またはエラーのクラス名の出力方式を変更した場合の設定例を次に示します。
- 簡易構築定義ファイルの設定例
: <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> :
- 出力内容
-
Event
Rc
INT
OPR
ASCII
0xae00
0
test00
(空白)
com.sample.ClassA.method1
0xae01
1
test00
*ment.IllegalClassFormatException
com.sample.ClassA.method1
この例では,次のようにトレース情報が出力されます。
-
トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。
-
jvm.userprf.ThrowableName=trueを指定しているため,発生した例外またはエラーのクラス名がメソッドの異常出口のオペレーション情報(OPR領域)に出力されます。ただし,発生した例外名が33文字以上で,jvm.userprf.ThrowableNameEditMethod=FRONT_CUTを指定しているため,前方が省略されて出力されます。省略された部分は「*」で表示されます。
-
jvm.userprf.LogLevel=methodを指定しているため,付加情報(ASCII領域)に完全修飾クラス名+メソッド名が出力されます。
-