ヘッダーをスキップ
Oracle® JRockitフライト・レコーダ・ラン・タイム・ガイド
リリースR28
B61448-03
  目次へ移動
目次

前
 
次
 

A 独自のサーバー側テンプレートの作成

この章では、サーバー側のテンプレートを変更または独自のテンプレートを作成する方法を説明します。

次のセクションが含まれます:

A.1 イベント・タイプおよびリレーショナル・キー

イベント・タイプはリレーショナル・キーによって参照され、JVMまたはアプリケーションでどのタイプのサブシステムに所属するかを示します。すべてのJVM内部システムのイベント・タイプのリレーショナル・キーは、http://www.oracle.com/jrockit/jvmで始まります。JVMには様々なサブシステムがあり、vmはランタイム、osは実行しているオペレーティング・システム、javaは実行中のJavaプログラムをそれぞれ参照します。たとえば、JVMがネイティブ・レベルでロックに入った時点でトリガーされるイベントのキーは、次のように呼ばれています。

http://www.oracle.com/jrockit/jvm/vm/sync/mutex_enter

マスター・リレーショナル・キーは、http://www.oracle.com/jrockit/jvmキー以外では、http://www.oracle.com/jrockit/jfr-infoが出現することがあります。これはフライト・レコーダの「メタ生成」を行います。したがって、JRockitフライト・レコーダ内部のイベント・タイプです。

A.2 サーバー側のテンプレート

デフォルトのフライト記録では、多数のイベント・タイプが有効になっていますが、サーバー側のテンプレートを通じてカスタマイズできます。

サーバー側のテンプレートは、.jfs接尾辞が付けられたファイルです。JSONフォーマットのデータが含まれ、フライト記録の設定の変更または拡張に使用されます。通常、独自のサーバー側テンプレートを作成する必要はありませんが、必要な場合は、JROCKIT_HOME/jre/lib/jfrフォルダにあるテンプレート・サンプルのいずれかを変更できます。

記録をカスタマイズするサーバー側テンプレートをOracle JRockit JVMに転送するには、-XX:FlightRecorderOptionssettingsサブフラグを使用するか、start_flightrecording診断コマンドを使用します。settingsには、事前定義済のテンプレート名(テンプレートの場所: JROCKIT_HOME/jre/lib/jfr)、または完全なカスタム・テンプレートを指定できます。

A.3 ファイル形式

サーバー側テンプレートは1つのセクションで構成され、イベント・タイプとそのカスタマイズされたプロパティを表すリレーショナル・キーのマッピングが記述されています。イベント・タイプごとに、enablestacktracethresholdおよびperiodプロパティを設定できます。

サーバー側テンプレート・ファイル(.jfs)の一般的な形式を例A-1に示します。

例A-1 サーバー側テンプレートの一般的な形式

{
    <relational-key> : {
             <sub-key 1> : { 
                      <attribute> : <value>    
                      <attribute> : <value>    
                      ...
                      <attribute> : <value>    
             },
             ...
             <sub-key 2> : {
                      <attribute> : <value>    
                      <attribute> : <value>    
                      ...
                      <attribute> : <value>    
            },                    
    },
    ...
}

コードの読みやすさを向上するため、通常、リレーショナル・キーは複数のレベルに分割されます。たとえば、記録でより詳細なJava I/O情報を有効にするサーバー側テンプレートを例A-2に示します。

例A-2 記録の詳細なJava I/O情報を有効にするサーバー側テンプレート

{
   "http://www.oracle.com/jrockit/jvm/" : {
 
           // Socket/SocketChannel read/write
           "java/socket_*" : {
                "enable" : true,
                "stacktrace" : true
           },
 
           // FileInputStream/RandomAccessFile/FileChannel read/write
           "java/file_*" : {
                "enable" : true,
                "stacktrace" : true
           }
    }
}

属性およびリレーショナル・キーでワイルドカードを使用できます。例A-1で、記述子がhttp://www.oracle.com/jrockit/jvm/java/socket_およびhttp://www.oracle.com/jrockit/jvm/java/file_で始まるすべてのイベント・タイプが有効になります(スタック・トレースの記録の場合)。

単独で強力なワイルドカードを指定することもできます。たとえば、例A-3では、すべてのイベントの収集を強制的に有効化し、過剰なデータ量を回避するために最小期間1,000msが設定されています。

例A-3 すべてのイベント・タイプの収集を強制的に有効化

// Settings file for JRockit Flight Recorder enabling collection of all events
{
    "*" : { 
       "enable" : true,
       "stacktrace" : true,
       "threshold" : 0,
       "period" : 1000ms
    }
}

機能を理解するために、JROCKIT_HOME/jre/lib/jfrにあるプリインストールされたカスタム・テンプレートをコピーしてお試しください。

A.4 連結ツール

JRockitフライト・レコーダのリポジトリは複数のファイルで構成され、JRockit Mission Controlで1個ずつ開いていくと、時間のかかる面倒な作業になる可能性があります。フライト・レコーダ・ツールを使用すると、リポジトリのすべての記録ファイルを1つのファイルに連結し、JRockit Mission Controlで開くことができます。

連結ツールを使用するには、次のコマンドを入力します。

java oracle.jrockit.jfr.tools.ConCatRepository [directory] [-o output_filename] [-f]