Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 保守/移行編


7.5.3 ユーザ拡張性能解析トレースのトレース対象メソッドの設定

ユーザ拡張性能解析トレースのトレース対象メソッドの設定は,ユーザ拡張性能解析トレース設定ファイルを使って設定します。ユーザ拡張性能解析トレース設定ファイルの内容は次のどれかに記述できます。

〈この項の構成〉

(1) 記述形式

ユーザ拡張性能解析トレース設定ファイルの記述形式を次に示します。

<指定形式>,<識別ID>,<サブクラスフラグ>[,[<イベントID>][,[<トレース取得レベル>]]][#コメント]
注1

[ ]で囲んだ項目は省略できます。

注2

クラス名およびパッケージ名が一致するすべてのメソッドを対象とする場合,jvm.userprf.ExtendedSettingプロパティの値をtrueに設定してください。

注※

<指定形式>は次のどれかの形式で指定します。

  • メソッド名と引数の型が一致するメソッドをトレースの対象とする場合

    <パッケージ名>.<クラス名>.<メソッド名>(メソッドの引数の型名)

  • メソッド名が一致するメソッドをトレースの対象とする場合

    <パッケージ名>.<クラス名>.<メソッド名>(*)

  • クラス名が一致するすべてのメソッドをトレースの対象とする場合

    <パッケージ名>.<クラス名>

  • パッケージ名が一致するすべてのメソッドをトレースの対象とする場合

    <パッケージ名>.*

記述形式の例

com.sample.Test.method(),TEST1,false,0xae02,A
com.sample.Test.method(),TEST1,false,0xae02
com.sample.Test.method(),TEST1,false,0xae02,
com.sample.Test.method(),TEST1,false,,A
com.sample.Test.method(),TEST1,false
com.sample.Test.method(),TEST1,false,
com.sample.Test.method(),TEST1,false,,

(2) 記述項目

ユーザ拡張性能解析トレース設定ファイルの記述項目を次に示します。

指定形式

トレース対象メソッドを指定します。

パッケージ名

トレース対象メソッドのクラスまたはインタフェースのパッケージ名を指定します。

クラス名

トレース対象メソッドのクラス名またはインタフェース名を指定します。クラス名の代わりにインタフェース名を指定し,かつ,サブクラスフラグにtrueを指定した場合,そのインタフェースを実装しているメソッドがトレース対象となります。

メソッド名

トレース対象メソッドの名前を指定します。

メソッドの引数の型名

トレース対象メソッドの引数の型を完全修飾名で指定します。

識別ID

トレース対象メソッドを識別するための文字列を指定します。

使用できる文字はASCII文字で0x21(!)から0x7e(~)までです。ただし,0x22("),0x23(#),および0x2c(,)は指定できません。

識別IDはPRFトレースファイルに出力されます。なお,PRFトレースファイルに出力される文字数は32文字までです。33文字目以降は省略されて,33文字目に*が出力されます。

注意事項

トレース対象メソッドが定義されているクラスにサブクラスが存在し,そのサブクラスでトレース対象メソッドがオーバーライドされていない場合,スーパークラスのトレース対象メソッドに対して指定された識別IDが出力されます。

サブクラスフラグ

指定したメソッドのクラスまたはインタフェースと継承関係にあるクラスのメソッドをトレース対象に含めるかどうかをtrueまたはfalseで指定します。

  • trueを指定した場合,指定したメソッドと,それをオーバーライドしているメソッドがトレース対象となります。

  • falseを指定した場合,指定したメソッドだけがトレース対象となり,指定したメソッドをオーバーライドしているメソッドはトレース対象となりません。

イベントID

トレース情報を取得するポイント(トレース取得ポイント)を16進数(0xae02〜0xae7eおよび0xc000〜0xcffe)の値で指定します。デフォルト値は0xae00です。

メソッドの入口で出力されるトレース情報にはこの値が出力され,メソッドの出口で出力されるトレース情報にはこの値+1が出力されます。

トレース取得レベル

トレース対象メソッドのトレース取得レベルに,A,B,C,またはそれぞれの小文字のどれかを指定します。デフォルト値はAです。

  • A:標準レベル

  • B:詳細レベル

  • C:保守レベル

参考

トレース取得レベルはcprflevelコマンドのPRFトレース取得レベルと同じです。トレース対象メソッドはすべてJava VMレイヤのレベルを参照します。PRF取得レベルとレイヤについては,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprflevel(PRFトレース取得レベルの表示と変更)」を参照してください。

コメント

コメントは「#」で始まり,「#」から行末までの間の文字すべてをコメントとします。

(3) 記述規則

ユーザ拡張性能解析トレース設定ファイルの記述規則を次に示します。

(4) ユーザ拡張性能解析トレース設定ファイルの記述例

ここでは,トレース対象メソッドごとに,ユーザ拡張性能解析トレース設定ファイルの記述例について説明します。

なお,ここで説明する記述例は,パッケージ名が「com.sample」で,次の図に示すクラス構造を持っているアプリケーションとします。

図7‒8 アプリケーションのクラス構造の例

[図データ]

(a) メソッド名と引数の型が一致するメソッドをトレースの対象とする場合

メソッド名と引数の型が一致するメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。

  • サブクラスフラグがfalseの場合

    com.sample.ClassA.methodA1(java.lang.String,java.lang.Object),1000,false

    サブクラスフラグがfalseの場合,記述したメソッド名と引数の型が一致するメソッドがトレース対象となります。

    トレース対象のメソッド

    ・ClassAクラスのmethodA1(String,Object)

    トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。また,識別IDに「1000」を設定しているため,識別IDとして「1000」が出力されます。

  • サブクラスフラグがtrueの場合

    com.sample.ClassA.methodA2(),2000,true

    サブクラスフラグがtureの場合,メソッド名と引数の型が記述と一致するメソッドに加えて,記述したメソッドをオーバーライドしているメソッドもトレース対象となります。

    トレース対象のメソッド

    ・ClassAクラスのmethodA2()

    ・ClassAクラスのmethodA2()をオーバーライドしているClassBクラスのmethodA2()

    トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。また,識別IDに「2000」を設定しているため,トレース対象のすべてのメソッドに識別IDとして「2000」が出力されます。

(b) メソッド名が一致するメソッドをトレースの対象とする場合

メソッド名が一致するメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。

  • サブクラスフラグがfalseの場合

    com.sample.ClassA.methodA1(*),methodA1,false,0xae30

    サブクラスフラグがfalseの場合,記述したメソッド名と一致するメソッドのすべてがトレース対象となります。

    トレース対象のメソッド

    ・ClassAクラスのmethodA1(String,Object)

    ・ClassAクラスのmethodA1(int)

    トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae30,メソッドの出口で0xae31が出力されます。また,トレース対象のすべてのメソッドに識別IDとして「methodA1」が出力されます。

  • サブクラスフラグがtrueの場合

    com.sample.ClassA.methodA1(*),methodA1,true,0xae30

    サブクラスフラグがtrueの場合,記述したメソッド名と一致するメソッドのすべてがトレース対象となります。また,記述したメソッドに加えて,記述したメソッドをオーバーライドしているメソッドもトレース対象となります。

    トレース対象のメソッド

    ・ClassAクラスのmethodA1(String,Object)とmethodA1(int)

    ・ClassAクラスのmethodA1(String,Object)をオーバーライドしているClassBクラスのmethodA1(String,Object)

    ・ClassBクラスのmethodA1(String,Object)をオーバーライドしているClassCクラスのmethodA1(String,Object)

    トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae30,メソッドの出口で0xae31が出力されます。また,トレース対象のすべてのメソッドに識別IDとして「methodA1」が出力されます。

(c) クラス名が一致するすべてのメソッドをトレースの対象とする場合

メソッドと引数を省略して,クラス名が一致するすべてのメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。

  • サブクラスフラグがfalseの場合

    com.sample.ClassA,TEST01,false

    サブクラスフラグがfalseの場合,記述したクラス名(ClassAクラス)のすべてのメソッドがトレース対象となります。

    トレース対象のメソッド

    ClassAクラスのmethodA1(String,Object),methodA1(int),およびmethodA2()

    トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「TEST01」が出力されます。

  • サブクラスフラグがtrueの場合

    com.sample.ClassB,TEST02,true

    サブクラスフラグがtrueの場合,記述したクラス名(ClassBクラス)のすべてのメソッドと,そのメソッドをオーバーライドしているメソッドのすべてがトレース対象となります。

    トレース対象のメソッド

    ・ClassBクラスのmethodA1(String,Object)

    ・ClassBクラスのmethodA2()

    ・ClassBクラスのmethodB1()

    ・ClassBクラスのmethodA1(String,Object)をオーバーライドしているClassCクラスのmethodA1(String,Object)

    トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「TEST02」が出力されます。

(d) パッケージ名が一致するすべてのメソッドをトレースの対象とする場合

クラス名とメソッド名と引数を省略して,パッケージ名が一致するすべてのクラスのすべてのメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。

注意事項

この指定ではサブパッケージも対象に含まれます。トレース対象となった場合,対象となったメソッドが呼び出されるとトレースが出力されます。

com.sampleパッケージにサブパッケージがある場合,そのサブパッケージのすべてのクラスのすべてのメソッドもトレース対象となります。

  • サブクラスフラグがfalseの場合

    com.sample.*,6000,false

    サブクラスフラグがfalseの場合,記述したパッケージ(com.sample)にあるすべてのクラスのすべてのメソッドがトレース対象となります。

    トレース対象のメソッド

    ClassA,ClassB,ClassC,ClassDのすべてのメソッドがトレース対象となります。

    トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「6000」が出力されます。

  • サブクラスフラグがtrueの場合

    com.sample.*,6000,false

    サブクラスフラグがtrueの場合,記述したパッケージ(com.sample)にあるすべてのクラスのすべてのメソッドと,そのメソッドをオーバーライドしているメソッドのすべてがトレース対象となります。

    トレース対象のメソッド

    ClassA,ClassB,ClassC,ClassDのすべてのメソッドと,そのメソッドをオーバーライドしているすべてのメソッドもトレース対象となります。

    トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「6001」が出力されます。

(5) ユーザ拡張性能解析トレース設定ファイル作成の注意事項

ユーザ拡張性能解析トレース設定ファイルを作成するときの注意事項を次に示します。