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

Java Management Extensions (JMX)テクノロジを使えば、ローカルまたはリモートのJava Virtual Machine (JVM)上で実行されている任意のJavaテクノロジベースのアプリケーション(Javaアプリケーション)をモニターおよび管理できます。JavaアプリケーションをJava Platform, Standard Edition (Java SEプラットフォーム)バージョン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が自動的に発見しない場合を、次に示します。

明示的なJMX接続の確立

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

ローカル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プラットフォームのモニタリングおよび管理の詳細については、次のドキュメントを参照してください。


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.