VisualVMはJMXを介してリモートプロセスに自動的に接続できますか?
質問
リモートマシンで実行されているJavaプロセスがあり、プロセスはいくつかのMBEANをセットアップします。私も持っています jstatd
Javaプロセスと同じユーザーとしてそのマシンで実行されます。 (MBEANSはプログラムで、または使用することができます -Dcom.sun.management.jmxremote...
など、これは違いを生むようには見えません)。
VisualVMはaを作成できます jstatd
自動的に発見するプロセスへの接続ですが、これはMBEANやCPU履歴チャートにアクセスできないことを意味します。または、明示的なJMX接続を作成することもできます。これにより、通常の便利なツールの範囲が得られますが、アプリケーションに起動時にランダムJMXポートを割り当ててください。この構成は静的ではありません。
VisualVMをJMXを介してプロセスに自動接続させる方法はありますか?これには、JMXポートを自動表示する必要がありますが、私は考えていただろう jstatd
それをすることができます。 VisualVMがこれを自動化するためのプラグインを知っている人はいますか?
解決
残念ながら、ランダムJMXポートをリモートアプリケーションに割り当てる方法はありません。リモートアプリケーションを開始できます
-Dcom.sun.management.jmxremote.port=<fixed port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
visualvmはこの構成を介して読み取ることができます jvmstat (JSTATDで提供)とリモートアプリケーションへのJMX接続を自動的に開きます。そのため、固定ポートをリモートアプリケーションに割り当てる必要があります。それを手に入れると、すべてが正常に動作し、VisualVMはJMXを介してアプリケーションに自動的に接続します(実際、両方のデータを組み合わせます jvmstat およびjmx)。