2009-08-20 11 views
1

J'ai parcouru le processus sur la page this pour exposer l'interface JMX d'une application Web.Comment gérer une application Web JMX

J'ai réussi à voir l'interface exposée sur le proxy Tomcat JMX, mais lorsque je charge JConsole et que je recherche l'interface mbean exposée, je ne trouve rien concernant les attributs et les opérations exposés.

Il n'y a pas d'entrée spécifique sur jconsole pour l'application web, donc j'ai pensé que ça pourrait être sous l'entrée TOMCAT jmx. Ce n'est pas. (À l'esprit, j'ai réussi à le voir sur la page proxy de Tomcat jmx).

Comment puis-je gérer mon application Web localement? Pourquoi JConsole ne le montre-t-il pas?

+0

Quelle version de Tomcat, et quelle version de Java? – skaffman

+0

java 1.6 avec tomcat 6.0 – Ben

+0

J'ai réussi à le faire. J'écris un post à ce sujet et je l'afficherai dès que ce sera fait. – Ben

Répondre

3

J'ai réussi à résoudre ce problème en faisant quelques étapes de base -

  1. Dans la méthode d'écoute de contexte webapp contextInitialized, j'instancié une classe singleton qui fonctionnera et mettre en œuvre le mbean (le servlet lui-même ne peut pas mettre en œuvre un mbean car il ne se réveille que pour prendre des requêtes du serveur).
  2. La servlet "informe" le singleton de chaque opération que nous voulons surveiller et le singleton est celui qui le signale réellement via jmx.
  3. Dans le singleton je me suis inscrit avec le serveur mbean avec cette commande:.

    ManagementFactory.getPlatformMBeanServer() registerMBean (ce nom);

Ceci est. (Dans une coquille de noix)

+0

Comment fonctionne votre design lorsque vous devez déployer sur un cluster (puisque vous avez des dépendances sur un singleton ...)? –

+0

Bon appel. En fait, mon collègue travaille à faire en sorte que cette solution soit une solution amicale. Je vais mettre à jour quand j'ai l'information. – Ben

Questions connexes