JMX - Technologie pour le monitoring d'applications Java par Baptiste DERRÉ

JMX, késako?

JMX signifie Java Management eXtensions. Il s'agit d'un standard Java qui définit des classes et une architecture à respecter. Cette technologie permet de faire du monitoring d'application Java. En d'autres termes, il va être possible par l'intermédiaire d'une architecture JMX de contrôler toutes sortes de ressources possédant une JVM.

Cette technologie est native dans la bibliothèque des classes standards de Java depuis la version Java SE 5. Les classes de l'API JMX se trouvent dans le package javax.management.

Les intérêts de la technologie

L'objectif de JMX est premièrement de visualiser les performances des applications d'un monde distribué. L'API proposée offre des classes permettant de visualiser les statistiques d'une application (utilisation du processeur, utilisation de la mémoire, nombre de threads actifs sur la JVM...).

Dans un second temps, JMX propose aux développeurs la possibilité de configurer et maintenir une application en cours d'exécution. Elle permet via des logiciels de gestion de modifier les valeurs des attributs d'une application pendant que celle-ci est en production. Il n'est, par exemple, pas nécessaire d'arrêter un serveur d'application pour modifier son niveau de log dans la console.

Les domaines d'utilisations

Le domaine d'utilisation de la technologie JMX est vaste. Elle est principalement utilisée dans une architecture JEE, cependant elle peut tout aussi bien servir pour de simple application Java. Elle est intégrée dans le serveur d'applications JBoss par exemple, à l'URL suivante http://localhost:8080/jmx-console/, où elle peut servir à modifier le niveau log4j du serveur. Voici un aperçu de la console JMX dans JBoss :

Console JMX JBoss

Elle peut être intégrée dans un serveur d'applications Tomcat avec l'extension MX4J.