Para programetically acceso a las estadísticas remotas (JVM parámetros del sistema JVM, statististics de rosca, información, información Memomy GC y otra información), JMX se puede utilizar. Para eso, la JVM remota debe permitir la conexión JMX (Check this on how to activate JMX in remote JVM). Básicamente necesita los siguientes parámetros -D que se fijará en la JVM remota con valores apropiados:
-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 vez que el ajuste anterior se lleva a cabo, conecte al puerto JMX y obtener diferente información Mbean desde el servidor remoto desde su aplicación: a continuación se presenta un código de ejemplo:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + HOST + ":" + PORT + "/jmxrmi");
JMXConnector jmxConnector = JMXConnectorFactory.connect(url);
MBeanServerConnection mbeanServerConnection = jmxConnector.getMBeanServerConnection();
Con esta mbeanServerConnection
, puede acceder a diferentes beans gestionados y obtener la información requerida de los granos MX. Para las propiedades del sistema, debe obtener el bean RuntimeMXBean
e invocar getSystemProperties()
para obtener todos los parámetros del sistema.
¿Qué quiere decir con JVM de terceros? ¿Te refieres a una JVM en la que no puedes ejecutar tu código? – adarshr
Simplemente solicite el programa que se ejecuta en una JVM de terceros para obtener información –
Sí, quiero decir ... No puedo ejecutar mi código Java en esa JVM. Alternativamente, ¿es posible conectarse a una JVM particular y ejecutar su código java en ella? – user1131528