Hitachi

 Hitachi Application Server V10 定義リファレンスWindows®用)


8.4 userprf.cfg

ユーザー拡張性能解析トレースで使用するユーザー拡張性能解析トレース設定ファイルのことです。

説明

ユーザー拡張性能解析トレースのトレース対象メソッドの情報は、ユーザー拡張性能解析トレース設定ファイルを使って設定します。

書式

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

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

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

記述項目

内容

指定形式

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

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

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

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

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

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

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

    パッケージ名.クラス名

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

    パッケージ名.*

指定形式の項目について説明します。

パッケージ名

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

クラス名

トレース対象メソッドのクラス名またはインターフェース名を指定します。クラス名の代わりにインターフェース名を指定し、かつ、サブクラスフラグに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が出力されます。

トレース取得レベル

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

  • A:標準レベル

  • B:詳細レベル

  • C:保守レベル

トレース取得レベルはcprflevelコマンドのPRFトレース取得レベルと同じです。トレース対象メソッドはすべてJava VMレイヤのレベルを参照します。

コメント

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

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

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

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,,

格納先

JDKのインストールディレクトリー\usrconf\userprf.cfg

記述例

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

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

[図データ]

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

サブクラスフラグが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」が出力されます。

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

サブクラスフラグが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」が出力されます。

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

サブクラスフラグが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」が出力されます。

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

重要

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

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

サブクラスフラグがfalseの場合
com.sample.*,6000,false

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

トレース対象のメソッドを次に示します。

  • ClassA、ClassB、ClassC、ClassDのすべてのメソッド

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

サブクラスフラグがtrueの場合
com.sample.*,6000,true

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

トレース対象のメソッドを次に示します。

  • ClassA、ClassB、ClassC、ClassDのすべてのメソッドと、そのメソッドをオーバーライドしているすべてのメソッド

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

注意事項