Ich habe einen Java-Prozess, der auf einem Remote-Computer ausgeführt wird, und der Prozess richtet einige MBeans ein. Ich habe auch jstatd
läuft auf dieser Maschine als der gleiche Benutzer wie der Java-Prozess. (Die MBeans können programmgesteuert oder unter Verwendung von -Dcom.sun.management.jmxremote...
etc. eingerichtet werden, dies scheint keinen Unterschied zu machen).Kann VisualVM automatisch über JMX mit einem Remote-Prozess verbinden?
VisualVM ist in der Lage, eine jstatd
Verbindung zum Prozess herzustellen, die automatisch erkannt wird, aber das bedeutet, dass ich keinen Zugriff auf mBeans oder beispielsweise das CPU-Verlaufsdiagramm bekomme. Alternativ kann ich eine explizite JMX-Verbindung erstellen, die mir die üblichen nützlichen Tools zur Verfügung stellt. Ich möchte jedoch, dass der Anwendung beim Start ein zufälliger JMX-Port zugewiesen wird. Diese Konfiguration kann nicht statisch sein.
Gibt es eine Möglichkeit, VisualVM über JMX automatisch mit meinem Prozess zu verbinden? Dies würde erfordern, dass es die JMX-Ports automatisch erkennt, aber ich hätte gedacht, jstatd
könnte das tun. Kennt jemand irgendwelche Plugins für Visualvm, um dies zu automatisieren?
Wie die meisten Socket-Aufrufe, können Sie den Port auf 0 setzen, und es wird dynamisch ausgewählt, dann verbindet jstatd Sie durch ... – time4tea