JProfiler ヘルプDownload

MBeanブラウザ


多くのアプリケーションサーバーやフレームワーク、例えば Apache Camelは、JMXを使用して 設定およびモニタリングの目的で多数のMBeanを公開しています。JVM自体も、JVM内の低レベル操作に関する興味深い情報を提供する プラットフォームMXBeans を公開しています。

JProfilerには、プロファイルされたVM内のすべての登録されたMBeanを表示するMBeanブラウザが含まれています。 MBeanサーバーにアクセスするためのJMXのリモート管理レベルは必要ありません。なぜなら、JProfilerエージェントは すでにインプロセスで実行されており、すべての登録されたMBeanサーバーにアクセスできるからです。

JProfilerはOpen MBeansの型システムをサポートしています。Open MBeansは、いくつかの単純な型を定義する だけでなく、カスタムクラスを含まない複雑なデータ型を定義できます。また、配列やテーブルがデータ構造として利用可能です。 MXBeansを使用すると、JMXはJavaクラスからOpen MBeansを自動的に作成する簡単な方法を提供します。 例えば、JVMが提供するMBeansはMXBeansです。

MBeansには階層がありませんが、JProfilerはオブジェクトドメイン名を最初のコロンまでの部分を最初のツリーレベルとして 取り、すべてのプロパティを再帰的にネストされたレベルとして使用してツリーに整理します。プロパティ値は最初に表示され、 プロパティキーは末尾に括弧で示されます。typeプロパティは、トップレベルノードのすぐ下に表示されるように 優先されます。

属性

MBeanコンテンツを表示するツリーテーブルのトップレベルでは、MBean属性が表示されます。

次のデータ構造はネストされた行として表示されます:

  • 配列

    プリミティブ配列とオブジェクト配列の要素は、キー名としてインデックスを使用してネストされた行に表示されます。
  • 複合データ

    複合データ型のすべてのアイテムはネストされた行として表示されます。各アイテムは任意の型である可能性があるため、 ネストは任意の深さまで続けることができます。
  • 表形式データ

    最も頻繁に遭遇するのは、java.util.Mapのインスタンスが1つのキー列と1つの値列を持つ表形式データ型に マッピングされるMXBeansでの表形式データです。キーの型が単純型の場合、マップは「インライン」で表示され、各キーと 値のペアはネストされた行として表示されます。キーが複雑な型を持つ場合、「マップエントリ」要素のレベルがネストされた キーと値のエントリと共に挿入されます。これは、複合キーと複数の値を持つ一般的な表形式タイプの場合も同様です。

オプションとして、MBean属性は編集可能であり、その場合は  編集アイコンが値の横に表示され、 値を編集アクションがアクティブになります。複合型および表形式型はMBeanブラウザで編集できませんが、 配列または単純型は編集可能です。

値がnullableである場合、例えば配列のように、エディタにはnull状態を選択するためのチェックボックスがあります。

配列要素はセミコロンで区切られます。1つの末尾のセミコロンは無視できるため、 11;は同等です。セミコロンの前に値がない場合、オブジェクト配列では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インターフェース上のメソッドであり、セッターやゲッターではありません。

操作の戻り値は、複合型、表形式型、または配列型である可能性があるため、MBean属性ツリーテーブルに似た内容の新しいウィンドウが表示されます。 単純な戻り値型の場合、「戻り値」という名前の行が1つだけ表示されます。他の型の場合、「戻り値」は結果が追加されるルート要素です。

MBean操作には1つ以上の引数がある場合があります。それらを入力する際には、MBean属性を編集する場合と同じルールと制限が適用されます。

MBeanスナップショット

MBeansのライブ値を表示することに加えて、現在の状態のスナップショットを撮ることもできます。 各新しいスナップショットはMBeanビューセクションに別のビューとして追加され、カスタムラベルを割り当てることができます。 スナップショットが撮影されると、現在のフィルターに従って表示されるMBeansのみが含まれます。 この方法で、特定のMBeansに集中し、目的に関連しないMBeansのクエリのオーバーヘッドを減らすことができます。

JProfiler UIでスナップショットを保存する際、すべてのMBeanスナップショットも保存されますが、ライブMBeanビューは保存されません。 オフラインプロファイリングの場合、 Controller APIまたは 「MBeanスナップショットを保存」トリガーアクションを使用してプログラム的にMBeanスナップショットを撮ることができます。

コントローラーAPIとトリガーアクションの両方は、ビューセレクターに表示されるオプションのラベルと、 含まれるMBeansをフィルタリングするためのオプションの正規表現をサポートしています。