Maîtrisez le monitoring de vos beans à travers la spécification JMX. Transformez vos beans Spring en MBean JMX. Créez un Agent local et modifiez l’état interne de vos composants. Enfin sélectionnez les méthodes à exposer.
Objis, spécialiste de la formation Java, est heureux de vous offrir ce
tutoriel, extrait de séances pratiques de notre formation SPRING.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Liens utiles
Documentation de référence Spring JMX
Prérequis, outils et versions
JDK 6
Installation SpringSource ToolSuite (STS)
Nous recommandons d’utiliser Spring STS pour vos développements Spring.
Objectifs
Exposer les attributs et méthodes d’un bean via JMX
Modifier l’état interne d’un bean à l’exécution via client JMX
Comprendre comment limiter le nombre de méthodes exposées
Programme
Partie 1 : création projet & librairies
Partie 2 : codage du bean
Partie 3 : création conteneur
Partie 4 : déclaration du bean dans le conteneur spring
Partie 5 : voir le MBean
Partie 6 : mise à jour avec java
Partie 7 : mise à jour avec JMX Console
Partie 8 : choix méthodes à exposer
Partie 9 : accès distant au bean : approche 1
Partie 10 : accès distant au bean : approche 2 (proxy)
Partie 11 : notifications
Durée
2h.
Partie 1 : création projet Spring
Créez un projet Spring ‘demospringjmx’
Pour information le projet ressemblera à ceci à la fin.
A la racine du projet, créez un répertoire ‘lib’ et ajoutez les librairies suivantes.
Partie 2 : bean
créez le package com.objis.spring.demojmx.service
Créez dans ce package le bean suivant :
Expliquez ce code.
Notez la présence d’un attribut métier ‘augmentation’ que nous souhaitons pouvoir mettre à jour durant l’exécution du programme.
— QUESTION 1 : à quoi sert la ligne 9 ?
— QUESTION 2 : quelle différence entre @Component et @Service ?
Partie 3 : conteneur
comment créer un fichier de définition de beans suivant ?
Ajoutez le code suivant :
— QUESTION 1 : Quel lien avec @Component du bean ?
— QUESTION 2 : Quelle est la valeur ajoutée de cette configuration ?
— QUESTION 3 : Quelles alternatives pour un résultat similaire ?
Ajoutez le code suivant :
— QUESTION 1 : qu’est un ‘MBean’ ?
— QUESTION 2 : qu’est un ‘MBeanExporter’ ?
Expliquez la configuration ci-dessus
Ajoutez le code suivant :
Expliquez les lignes 9 et 18.
La configuration du conteneur est terminée. Reste à tester.
Partie 4 : programme principal
Ce programme va permettre une iinterraction avec l’utilisateur du programme, qui va pouvoir entrer en ligne de commande un nouveau montant à affecter en interne à la variable augmentation’ du bean.
Expliquez
Partie 5 : voir le Mbean
Dans cette partie nous allons utiliser le programme Java et constater l’effet sur la variable.
Lancez le programme JConsole
vous obtenez un résultat similaire à ceci :
sélectionnez le programme DemoJMX , puis boutton ‘connecter’
Sélectionnez l’onglet ‘MBeans’ :
Expliquez
Visualisez la valeur d’ l’attribut
Expliquez
QUESTION : qu’est ce qu’un ObjectName ?
Partie 6 : mise à jour avec programme Java
Le programme attend un nouveau montant pour l’augmentation . Tapez par exemple 150 , puis ENTREE
Raffraichissez (boutton Refresh) la valeur de l’attribut dans la console
Expliquez.
Partie 7 : mise à jour avec client JMX
Sélectionnez les opérations réalisables avec Jconsole
Modifiez à nouveau la valeur de l’attribut
Raffraichissez
Expliquez
Partie 8 : sélection des méthodes à exposer
Nous souhaitons ne pas afficher la méthode ‘rapportDetailleAugmentation’ :
Comment faire ceci ?
Partie 9 : Accès distant : Approche 1
En utilisant la documentation de référence de Spring sur JMX , proposez une méthode d’accès distant au Mbean.
QUESTION 1 : qu’est ce qu’un ConnectorServerFactoryBean ?
QUESTION 2 : Quel role pour un registre RMI (RmiRegistryFactoryBean) ? Comment crée ce Registre ?
QUESTION 3 : Qu’est ce qu’un MbeanServerConnection ?
CORRECTION
Partie 10 : Accès distant : Approche 2 (Proxy)
En utilisant la documentation de référence de Spring sur JMX , expliquez la notion de MBeanProxyFactoryBean. Quelle est sa valeur ajoutée ?
Partie 11 : notifications
En utilisant la documentation de référence de Spring sur JMX , expliquez comment mettre en oeuvre un service de notification : intercepter et être d’un évènement particulier lié à votre Mbean.
QUESTION : qu’est ce qu’un NotificationListeners ?
Conclusion
Dans ce tutoriel, vous avez pratiqué mis en oeuvre JMX avec Spring. Vous avez exposé l’état interne et le savoir-faire d’un bean Spring au client JMX comme ici Jconsole.