Tutoriel Spring : monitoring JMX

/////Tutoriel Spring : monitoring JMX

logo-sts-2.pngMaî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.

planning-formation-framework-spring-objis

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.

tutoriel-spring-jmx-objis-0

Partie 2 : bean

 créez le package com.objis.spring.demojmx.service

 Créez dans ce package le bean suivant :

tutoriel-spring-jmx-objis-1

 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 ?

tutoriel-spring-jmx-objis-2

 Ajoutez le code suivant :

tutoriel-spring-jmx-objis-2bis

— 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 :

tutoriel-spring-jmx-objis-2ter

— QUESTION 1 : qu’est un ‘MBean’ ?

— QUESTION 2 : qu’est un ‘MBeanExporter’ ?

 Expliquez la configuration ci-dessus

 Ajoutez le code suivant :

tutoriel-spring-jmx-objis-2terBis

 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.

tutoriel-spring-jmx-objis-3

 Expliquez

tutoriel-spring-jmx-objis-3bis

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

tutoriel-spring-jmx-objis-5bis

 vous obtenez un résultat similaire à ceci :

tutoriel-spring-jmx-objis-4

 sélectionnez le programme DemoJMX , puis boutton ‘connecter’

 Sélectionnez l’onglet ‘MBeans’ :

tutoriel-spring-jmx-objis-5

 Expliquez

 Visualisez la valeur d’ l’attribut

tutoriel-spring-jmx-objis-6

 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

tutoriel-spring-jmx-objis-7

 Raffraichissez (boutton Refresh) la valeur de l’attribut dans la console

tutoriel-spring-jmx-objis-8

 Expliquez.

Partie 7 : mise à jour avec client JMX

 Sélectionnez les opérations réalisables avec Jconsole

tutoriel-spring-jmx-objis-9

 Modifiez à nouveau la valeur de l’attribut

tutoriel-spring-jmx-objis-10

 

tutoriel-spring-jmx-objis-11

 Raffraichissez

tutoriel-spring-jmx-objis-12

 Expliquez

Partie 8 : sélection des méthodes à exposer

Nous souhaitons ne pas afficher la méthode ‘rapportDetailleAugmentation’ :

tutoriel-spring-jmx-objis-14

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

demospringjmx

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 ?

spring-jmx-4

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.

2018-01-29T13:07:27+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java