Windows XP Professional マシンで多数の Java プロセスを実行しています。ローカル JConsole 経由でこれらのプロセスに接続しようとすると、プロセスがグレー表示されます。
ただし、別のマシンで同じプロセスを実行し、そのマシンのローカル JConsole 経由で接続できます。
両方のマシンで、プロセスと jconsole 用に Java 1.6 バージョンが実行されています。
これらのプロセスがグレー表示されている理由はありますか?
私は現在この問題と戦っていますが、回避策を見つけました:
ローカル ユーザーの一時ディレクトリを、確実にアクセスできるもの (たとえば、D:\temp) に変更できます。監視しようとしているプロセスと jconsole プロセスに対して必ずこれを実行してください。
明らかに問題を引き起こす可能性があるもう 1 つのことは、大文字を含むユーザー名です。ディレクトリは常にすべて小文字で作成されますが、名前をタスク マネージャーに表示されているとおりに変更するだけで、すべての問題が解消されます: http://planeofthought.com/wp/?p=75
プロセスが別のユーザーとして実行されている場合 (たとえば、サービスとして開始した場合)、それらに接続することはできません。また、それらが古い jvm で実行されている場合、それらと通信できない可能性が高くなります。
場合によっては、ローカル jmx 通信メカニズムがローカル ファイルシステムを使用し、権限が正しく定義されていないと問題が発生することがあります。ネットワーク化されたファイルシステム (nfs、samba) でこれらのプロセスを実行している可能性はありますか?
タスク マネージャーに表示される Java アプリケーションの起動に使用する Windows ユーザー名が YOUR_USER_NAME だとします。hsperfdata_XXXXX のような名前のフォルダー (XXXXX はユーザー名) を一時フォルダーで確認し、YOUR_USER_NAME と XXXXX が完全に同じであることを確認してください (大文字と小文字に注意してください)。
http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.htmlから:
管理エージェントが無効になっている、接続できないアプリケーション。これらには、J2SE 1.4.2 プラットフォームで開始されたアプリケーション、
-Dcom.sun.management.jmxremote
または またはcom.sun.management.jmxremote.port
オプションなしで J2SE 5.0 プラットフォームで開始されたアプリケーションが含まれます。これらのアプリケーションはテーブルでグレー表示され、JConsole はそれらに接続できません。図 3-1 に示されている接続ダイアログの例では、アナグラム アプリケーションは、JMX エージェントを有効にするための管理プロパティがない J2SE 5.0 プラットフォーム VM で開始されたため、灰色で表示され、選択できません。
(ソース: oracle.com )
ドキュメントに書かれている内容にもかかわらず、プロセスが別のユーザーで実行されている可能性があります。管理者として実行jconsole
してから試すことができます。
これが私のために働いたものです。自分の場所に作成したフォルダー(のような) を指すように、環境変数%TEMP%
と環境変数を変更しました。これを行うと、すべての問題がなくなりました。%TMP%
%HOME%
C:\Users\[YOUR_NAME]\Temp