Per programetically l'accesso alle statistiche remote JVM (parametri di sistema JVM, statististics della discussione, informazioni Memomy, GC informazione e altre informazioni), JMX può essere utilizzato. Per questo, la JVM remota deve consentire la connessione JMX (Check this on how to activate JMX in remote JVM). Fondamentalmente è necessario i seguenti parametri -D da impostare nella JVM a distanza con i valori appropriati:
-Dcom.sun.management.jmxremote.port=1234
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=127.0.0.1
Una volta che l'impostazione di cui sopra è fatto, collegare alla porta JMX e ottenere diverse informazioni Mbean dal server remoto dall'applicazione: Segue alcuni esempi di codice:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + HOST + ":" + PORT + "/jmxrmi");
JMXConnector jmxConnector = JMXConnectorFactory.connect(url);
MBeanServerConnection mbeanServerConnection = jmxConnector.getMBeanServerConnection();
Con questo mbeanServerConnection
, è possibile accedere a diversi fagioli gestiti e ottenere le informazioni richieste dai chicchi MX. Per le proprietà di sistema, è necessario ottenere il bean RuntimeMXBean
e richiamare getSystemProperties()
per ottenere tutti i parametri di sistema.
Cosa intendi per JVM di terze parti? Ti riferisci a una JVM su cui non puoi eseguire il tuo codice? – adarshr
Basta chiedere al programma in esecuzione su JVM di terze parti per informazioni –
Sì, voglio dire..Non riesco a eseguire il mio codice java su quella JVM. In alternativa, è possibile connettersi a una JVM particolare ed eseguire il codice java su di esso? – user1131528