8 よくある質問
この項では、JDK Mission Controlについてよくある質問をリストします。
JVMに接続できません。何が問題でしょうか。
-
正しいプロトコルを使用していますか。
モニター対象のJVMのバージョンと、JMCアプリケーションを実行しているJVMのバージョンが同じであることを確認してください。
サービスURLの形式です。
service:jmx:rmi:///jndi/rmi://<hostname>/jmxrmi
-
正しいポートが開いていますか。
RMIを介してJMXを実行するには2つのポートが必要で、ポートの1つは事前に認識されていません。
-
通信がファイアウォールによってブロックされていますか。
詳細は、JDK Mission Controlの通信に関する項を参照してください。
JVMに接続しようとすると、JVMが不明のIPまたはホスト名との通信を試行しているというスタック・トレースが表示されます。
RMIではときどき、使用するアドレスを決定する際に問題が生じることがあります。これは、次のいずれかの理由で発生する可能性があります。
-
セキュリティ・マネージャでアクセスの制限があります。
-
マシンがマルチホームであり、RMIが間違ったインタフェースを選択しています。
-
誤って構成された
hosts
ファイルが存在しているか、多くの様々なネットワーク関連の構成の問題があります。
他のすべてが失敗した場合、java.rmi.server.hostname
システム・プロパティの設定を試みてください。これは、JVMで実行されているアプリケーションに影響を与える可能性があります。
クラスが見つからないという例外が起動時に発生します。何が間違っていますか。
- Windows:
<JMC_ROOT>\bin
- Linux:
<JMC_ROOT>/bin
- macOS:
<JMC_ROOT>/JDK Mission Control.app
JDK Mission ControlがローカルのJVMを検出できないのはなぜですか。
この問題を解決するには、Windowsプラットフォームの場合、次の点について考察します:
-
<JMC_ROOT>\bin
を使用してJMCクライアントを起動していることを確認します。 -
JDK 8(以降)のシステム・パス(
<jdk_installation_path>\bin
)がPATH環境変数に設定されています。 -
jmc.exe
を開くときは、PATHに対するアクセス権があることを確認し、そうでない場合は管理者として実行します。 -
EclipseからJMCを実行する場合、Eclipseが(JREではなく)JDK上で実行されていることを確認します。
-
システムの
tmp
ディレクトリにhsperfdata_username
という名前のディレクトリが存在し、JMCを実行しているユーザーが書込み可能であること、さらにファイル・システムがアクセス制御リスト(ACL)をサポートしていることを確認します。
ノート:
LinuxおよびmacOSの構成の詳細は、JDK Mission Control 7のインストール手順を参照してください。