Sun Java Solaris コミュニティー My SDN アカウント SDN に参加
 

Java VisualVM


Java VisualVM ドキュメントの索引に戻る

JMX エージェントへの明示的な接続

Java Management Extensions (JMX) テクノロジを使えば、ローカルまたはリモートの Java Virtual Machine (JVM) 上で実行されている任意の Java テクノロジベースのアプリケーション (Java アプリケーション) を監視および管理できます。Java アプリケーションを Java Platform, Standard Edition (Java SE プラットフォーム) Version 6 上で実行すると、監視および管理対象として JMX エージェントによって自動的に公開されます。Java アプリケーションを Java 2 Platform, Standard Edition (J2SE プラットフォーム) 5.0 上で実行している場合は、アプリケーション起動時に com.sun.management.jmxremote.* システムプロパティーを設定することで、監視および管理対象として手動で公開できます。これらのシステムプロパティーを設定するか、あるいは Java SE プラットフォームのバージョン 6 上でアプリケーションを実行すると、プラットフォームの「アウトオブボックス」の監視および管理機能が有効になります。自動的に、JVM ソフトウェア内のプラットフォーム MBean サーバーが有効になり、適切に設定された任意の JMX クライアントアプリケーションの管理対象としてアプリケーションを公開するための MBean が、そのサーバーに登録されます。VisualVM はそのような JMX クライアントアプリケーションの 1 つです。

-JMX テクノロジ、MBean、プラットフォーム MBean サーバー、および Java VisualVM を使って MBean を監視および管理する方法の簡単な概要については、「Java VisualVM MBeans Tab」ページを参照してください。Java SE プラットフォームのアウトオブボックスの監視および管理機能の概要については、「Java SE 監視および管理ガイド」の「JMX テクノロジを使用する監視と管理」を参照してください。

明示的な JMX 接続が必要になる場合

前述したように、Java VisualVM は、バージョン 6 の Java SE プラットフォーム上で実行されている Java アプリケーションや、バージョン 5.0 上で正しいシステムプロパティーを指定して起動された Java アプリケーションを自動的に検出して接続します。ただし、ターゲットとなる Java アプリケーション内で実行されている JMX エージェントを Java VisualVM が自動的に発見して接続できない場合があるため、明示的な JMX 接続を作成する方法も Java VisualVM に追加されました。

JMX エージェントおよびそれが公開する Java アプリケーションを Java VisualVM が自動的に発見しない場合を、次に示します。

  • ターゲットアプリケーションが J2SE 5.0 プラットフォーム上で実行されており、-Dcom.sun.management.jmxremote* プロパティーが指定されなかった。
  • Java VisualVM と同じホスト上でターゲットアプリケーションが実行されているが、そのアプリケーションを起動したユーザーが Java VisualVM を起動したユーザーとは異なる。Java VisualVM が実行中のアプリケーションを発見する際に使用するのは jps ツールですが、このツールで発見できるのは、Java VisualVM ツールを起動したユーザーと同じユーザーによって起動された Java アプリケーションだけです。
  • ターゲットアプリケーションが実行されているリモートホスト上で、jstatd が実行されていないか、実行されているが異なるユーザーによって起動された。jstatd デーモンが提供するインタフェースを使えば、そのデーモンが動作するホスト上の Java アプリケーションに、リモート監視アプリケーションから接続できるようになります。

明示的な JMX 接続の確立

Java VisualVM から実行中のアプリケーションへの明示的な JMX 接続を確立するには、事前にそのアプリケーションを正しいシステムプロパティーを使って起動しておく必要があります。対象のシステムプロパティーを次に示します。

  • com.sun.management.jmxremote.port: アプリケーションの公開に使用するポート番号を指定する
  • com.sun.management.jmxremote.ssl: Secure Sockets Layer (SSL) 暗号化を有効にしてアプリケーションへの接続をセキュリティー保護するかどうかを指定する
  • com.sun.management.jmxremote.authenticate: 接続をパスワードで保護するかどうかを指定する

ローカル JMX 接続

ここでは、明示的な JMX 接続経由で Java VisualVM をローカルアプリケーションに接続する方法の例を示します。

  1. J2SE プラットフォームのバージョン 5.0 上で Java アプリケーションを起動しますが、その際、システムプロパティーを設定して Java SE プラットフォームのアウトオブボックスの監視および管理機能を有効にします。それには次に示すコマンドを使用します。
    java -Dcom.sun.management.jmxremote.port=3333 \
         -Dcom.sun.management.jmxremote.ssl=false \
         -Dcom.sun.management.jmxremote.authenticate=false \
         YourJavaApp
    このコマンドでは、次のように設定された Java SE プラットフォームのアウトオブボックスの監視および管理機能を使って YourJavaApp が起動されます。
    • ポート 3333 経由で監視および管理できるようにアプリケーションが公開されます。
    • SSL 暗号化は無効化されます。
    • パスワード認証は無効化されます。
  2. 同じマシン上で Java VisualVM を起動します。
  3. Java VisualVM の「Applications」ウィンドウで「Local」マシンを右クリックし、「Add JMX Connection」を選択します。

    ローカルホストへの JMX 接続の追加。

  4. 「Add JMX Connection」ダイアログボックスが開きます。

    「Add JMX Connection」ダイアログボックス。

    ホスト名 localhost がすでに設定されています。追加する必要があるのは、監視および管理対象としてアプリケーションを公開する際に使用するポート番号だけです。

  5. 「OK」をクリックします。JMX 接続が、特殊な JMX 接続アイコン付きでアプリケーションツリー内に表示されます。

    ローカルホストマシンへの JMX 接続。

  6. JMX 接続を右クリックし、「Open」を選択します。これで、JMX 接続経由で公開された JVM ソフトウェアを、Java VisualVM 経由で監視および管理できます。

    JMX 接続経由でのアプリケーションの監視。

リモート JMX 接続

リモートホスト上で実行されているアプリケーションへの明示的な JMX 接続を確立することもできます。その方法を次に説明します。

  1. アプリケーションツリーの下にある空白領域のどこかを右クリックし、「Add JMX Connection」を選択します。

    リモートアプリケーションへの JMX 接続の追加。

  2. リモート管理を可能にする適切なシステムプロパティーを指定して起動された、実行中の JMX エージェントのマシン名とポート番号を入力します。ここでは、マシン curcuma のポート 2222 上で JMX エージェントが公開されています。

    リモート JMX 接続の追加。

    JMX エージェントがユーザー名とパスワードで保護されていることを知っている場合には、「Add JMX Connection」ダイアログでそれらを入力し、資格を保存すべきかどうかを指定します。
    資格を保存するようにした場合には、Java VisualVM は再起動時に、セキュリティー資格の再入力をユーザーに要求することなしに、JMX エージェントに自動的に再接続します。

  3. JMX 接続がセキュリティー保護されているのに、「Add JMX Connection」ダイアログでユーザー名とパスワードを入力しなかった場合には、ユーザー名とパスワードの入力を求めるプロンプトが表示されます。

    JMX コネクタのセキュリティー資格。

  4. 正しいユーザー名とパスワードを知っている場合には、JMX 接続が確立され、その JMX 接続が特殊な JMX 接続アイコン付きでアプリケーションツリー内に表示されます。

    アプリケーションツリー内に表示されたリモート JMX 接続。

  5. リモート JMX 接続を右クリックし、「Open」を選択します。これで、リモートアプリケーションを JMX 接続経由で監視および管理したり、この接続で公開されている、MBean サーバーに登録された任意の MBean を操作したりできます (「MBeans」タブにアクセスするには、Java VisualVM-MBeans プラグインをインストールする必要がある)。

    リモート MBean サーバー内の MBean。

JMX テクノロジに関するより詳しいドキュメント

JMX テクノロジの詳細や、Java SE プラットフォームの監視および管理の詳細については、次のドキュメントを参照してください。

 


Java VisualVM ドキュメントの索引に戻る