多くのアプリケーションサーバーやフレームワーク(例: Apache Camel)は、設定やモニタリングの目的でJMXを利用して多数のMBeanを公開しています。JVM自体も、 プラットフォームMXBean をいくつか公開しており、JVM内部の低レベルな動作に関する興味深い情報を提供します。
JProfilerには、プロファイルされたVM内で登録されているすべてのMBeanを表示するMBeanブラウザが含まれています。MBeanサーバーへアクセスするためのJMXのリモート管理レベルは不要です。なぜなら、JProfilerエージェントがすでにインプロセスで動作しており、すべての登録済みMBeanサーバーへアクセスできるためです。
JProfilerはOpen MBeanの型システムをサポートしています。Open MBeanは、いくつかの単純な型を定義できるだけでなく、カスタムクラスを必要としない複雑なデータ型も定義できます。また、配列やテーブルもデータ構造として利用可能です。MXBeanを使うことで、JMXはJavaクラスからOpen MBeanを自動的に作成する簡単な方法を提供します。例えば、JVMが提供するMBeanはMXBeanです。
MBean自体には階層構造はありませんが、JProfilerはオブジェクトのドメイン名の最初のコロンまでを最上位のツリーレベルとし、すべてのプロパティを再帰的にネストしたレベルとして、ツリー構造に整理します。プロパティ値が先頭に表示され、プロパティキーは末尾にカッコで表示されます。typeプロパティは、最上位ノードの直下に優先的に表示されます。
属性
MBeanの内容を表示するツリーテーブルの最上位レベルには、MBeanの属性が表示されます。
以下のデータ構造は、ネストされた行として表示されます。
-
配列
プリミティブ配列やオブジェクト配列の要素は、インデックスをキー名としてネストされた行に表示されます。 -
複合データ
複合データ型のすべての項目は、ネストされた行として表示されます。各項目は任意の型となるため、任意の深さまでネストが可能です。 -
テーブルデータ
多くの場合、MXBean内でjava.util.Mapのインスタンスが、1つのキー列と1つの値列を持つテーブルデータ型にマッピングされます。キーの型が単純型の場合、マップは「インライン」で表示され、各キーと値のペアがネストされた行として表示されます。キーが複雑な型の場合は、「map entry」要素のレベルが追加され、ネストされたキーと値のエントリが挿入されます。複合キーや複数値を持つ一般的なテーブル型でも同様です。
オプションで、MBean属性を編集可能にすることもできます。その場合、 編集アイコンが値の横に表示され、 値を編集アクションが有効になります。複合型やテーブル型はMBeanブラウザ上で編集できませんが、配列や単純型は編集可能です。
配列などの値がnull許容の場合、エディタにはnull状態を選択できるチェックボックスが表示されます。
配列要素はセミコロンで区切ります。末尾のセミコロンは無視されるため、
1と1;は同じ意味になります。セミコロンの前に値がない場合、オブジェクト配列ではnull値として扱われます。文字列配列の場合、ダブルクォーテーション("")で空要素を作成でき、セミコロンを含む要素は全体をクォートします。文字列要素内のダブルクォーテーションは2つ重ねて記述します。
例えば、次のように入力すると:
"Test";"";;"embedded "" quote";"A;B";;
次の文字列配列が作成されます。
new String[] {"Test", "", null, "embedded \" quote", "A;B", null}
JProfilerは、数値型のMBean属性値からカスタムテレメトリーを作成できます。 MBeanテレメトリーラインを定義してカスタムテレメトリーを作成する際、テレメトリーデータを提供する属性を選択できるMBean属性ブラウザが表示されます。すでにMBeanブラウザで作業している場合は、コンテキストメニューの値のテレメトリーを追加アクションから、簡単に新しいカスタムテレメトリーを作成できます。
テレメトリーは、複合データや単純キー・単一値のテーブルデータ内のネストされた値もトラッキングできます。ネストされた行を選択すると、パスコンポーネントがスラッシュで区切られた値パスが構築されます。
操作
MBean属性の閲覧・編集に加えて、MBean操作の呼び出しや戻り値の確認も可能です。MBean操作は、MBeanインターフェース上のsetter/getter以外のメソッドです。
操作の戻り値は複合型・テーブル型・配列型の場合もあり、その場合はMBean属性ツリーテーブルと同様の内容を持つ新しいウィンドウが表示されます。戻り値が単純型の場合は「戻り値」という1行のみ表示されます。それ以外の型の場合、「戻り値」がルート要素となり、その下に結果が追加されます。
MBean操作には1つ以上の引数を持つことができます。入力時のルールや制限は、MBean属性の編集時と同じです。
MBeanスナップショット
MBeanのライブ値の閲覧に加えて、現在の状態のスナップショットを取得することもできます。新しいスナップショットはMBeanビューセクション内の個別のビューとして追加され、カスタムラベルを割り当てることができます。スナップショット取得時には、現在のフィルターに従って表示されているMBeanのみが含まれます。これにより、特定のMBeanに集中し、不要なMBeanのクエリによるオーバーヘッドを削減できます。
JProfiler UIでスナップショットを保存すると、すべてのMBeanスナップショットも保存されますが、ライブMBeanビューは保存されません。オフラインプロファイリングの場合は、 Controller APIや「MBeanスナップショットを保存」トリガーアクションを使って、プログラムからMBeanスナップショットを取得できます。
Controller APIとトリガーアクションの両方で、ビューセレクターに表示されるオプションのラベルや、含めるMBeanを絞り込むための正規表現を指定できます。















