{{tag>sysadmin supervision java jmx}} ====== JMX: Services ====== Le framework JMX inclus un ensemble de services directement disponibles pour le développement des agents/objets supervision: - Timers - Monitoring - Chargement à distance des MBeans (M-Let MBean) - Requêtes - Gestion des relations Tout comme les connecteurs/adaptateurs, les services sont des MBeans et son invocable via l'interface de supervision. Ces services utilisent massivement le principe de notification. JMX repose sur le design pattern "Observer" équivalent à ce qu'on peut trouver pour la conception d'interfaces graphiques. Le service de notification permet à un objet Mbean de recevoir des notifications en provenance de n'importe quel autre objet MBean. ===== Service Timer ===== Le service de Timer fournit des horloges/reveils programmables aux objets de supervision. Tout objet géré peut ainsi demander des notifications temporelles périodiques ou apériodiques. Un ensemble de méthodes permet de contrôler le cycle de vie du ou des timers instanciés: start(),stop(), isActive() etc. Pour recevoir les notifications émises par le timer, l'objet s'abonne au timer via la méthode Timer.addNewListener() ===== Service Monitoring ===== Avec le service de monitoring, un objet MBean peut observer l'évolution des valeurs des attributs d'un autre objet. Le service de monitoring de JMX permet à une application de supervision de déléguer la surveillance d'un attribut d'un objet à l'agent. 3 comportements existent: * surveillance de compteur: émission de notifications lors de franchissement de seuils. * surveillance de gauge: deux déclenchements sur seuils haut ou bas. Les alarmes ne sont émises que lors d'un changement d'état. * surveillance de chaine de caractères: compare a une référence: notifications Matches ou Differs, les notifications ne sont émises que sur changement d'état. ===== Service de relations ===== Les objets MBeans sont associés à des rôles. Le service assure la supervision et la consistance des relations et offre un système d'interrogation des relations via un langage de requêtes. Le système de requête permet de récupérer en une opération un ensemble de MBeans répondant aux critères définis. Les requêtes se composent de 2 paramètres: * Une portée (scope) * Un filtre exprimant des contraintes sur des attributs. ===== M-Let MBean ===== Le service M-Let MBean permet de charger à distance des MBeans dans un agent. Permet de fournir une archive d'objet de supervision et de les recharger dans un agent distant. ===== Conclusion ====== Pour résumer, JMX offre un ensemble de services supports permettant: * de charger à distance des objets de supervision, * de suivre l’évolution de leurs attributs via le monitoring * de sélectionner facilement les MBeans au travers d'un service de relation et un mécanisme de requêtes. Le protocole RMI proposé par JMX permet également à toute application Java de se connecter facilement à un agent distant. ===== Quizz ===== * JMX fournit des services de monitoring, de regroupement de MBeans, de chargement à distance de MBeans. * La gestion des notifications n'utilise pas le design pattern MVC mais le design pattern Observer. * Pour recevoir une notification un objet s'inscrire auprès de l'émetteur et implémenter une interface spécifique. * Le service Timer permet de générer des notifications dont le type est définit par l'utilisateur et gérer le cycle de vie des timers. * Le monitoring de type Gauge génère 2 types de notifications (franchissement de seuils haut et bas) * Le monitoring de chaînes de caractères émet une notification lorsque la chaîne observée est identique à la chaîne de référence. * Le service de relation surveille la cohérence des relations * La granularité du service de timer est la milliseconde. * Le service de requête requiert un filtre et un motif de nom pour sélectionner des MBeans. * Les filtres se composent d'expressions portant à la fois sur les attributs et d'expressions portant sur des meta-données associées aux MBeans.