Activar Java Management Extensions

La tecnología JMX provee de la capacidad para implementar herramientas de monitoreo y administracion distribuída, por web, modular y hasta dinámica de dispositivos, aplicaciones y servicios orientados a la red. Documentación adicional.

20091122. Es importante mencionar que la utilización de esta herramienta de monitoreo se vuelve INTRUSIVA al generar TRHEADS en cada solicitud de información.

La administración remota con JMX se puede activar de diferentes maneras dependiendo de la aplicación. Asumamos que se tiene una instalación standalone de Tomcat en su versión 5 y se requiere medir el performance de la JVM, por lo tanto se tendrán que agregar los siguientes parámetros(básicos) a la variable de entorno JAVA_OPTS:

    * -Dcom.sun.management.jmxremote
    * -Dcom.sun.management.jmxremote.port=9999
    * -Dcom.sun.management.jmxremote.local.only=false
    * -Dcom.sun.management.jmxremote.authenticate=false

Entonces, la variable de ambiente estaría integrada de la siguiente forma:

* Unix:

export JAVA_OPTS= $JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false

Windows

set %JAVA_OPTS% = %JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false

Una vez iniciado el Tomcat se puede verificar que haya iniciado correctamente y no omitido los parámetros con un netstat, es decir, con este comando buscaremos que el puerto 9999 esté en escucha de la siguiente forma:

    * Unix: netstat -an | grep 9999
      *.9999             *.*                0      0 65536      0 LISTEN

Un escenario más, es ejecutar una aplicación Java con estos parámetros, es decir,

java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-jar Notepad.jar

Una vez comprobado el puerto en escucha y con los parámetros anteriores establecidos, podemos conectarnos por cualquier cliente de administración remota (JMX) de la siguiente manera: servidor.dominio:9999