2009-08-17 4 views
2

Je souhaite surveiller les applications Web exécutées sous Tomcat à l'aide de JMX. Je ne veux pas simplement utiliser l'implémentation JMX intégrée de Tomcat, je veux implémenter un mbean pour l'application Web actuelle afin que je puisse obtenir des informations sur les paramètres spécifiques aux applications et les surveiller. Le problème avec les applications Web et la surveillance en ligne est que les applications Web ne sont pas toujours actives mais sont "réveillées" pour gérer les requêtes du serveur, donc les surveiller ne se limite pas à JMX comme pour un processus normal.Comment surveiller une application Web sur Tomcat à l'aide de JMX?

Comment faire en sorte que Tomcat exécute des applications en arrière-plan (comme un Singleton) pour que je puisse me connecter à tout moment?

Existe-t-il un moyen de le faire qui est commun et je ne suis pas au courant?

Merci!

Répondre

2

Vous pouvez créer une classe qui implémente ServletContextListener, puis charger cet écouteur dans votre fichier web.xml.

La classe:

public class ServerListener implements ServletContextListener { 

    public void contextDestroyed(ServletContextEvent pSce) { 
    } 

    public void contextInitialized(ServletContextEvent pSce) { 
     // TODO Register MBean here. 
    } 
} 

Le web.xml:

<listener> 
    <listener-class>com.example.ServerListener</listener-class> 
</listener> 
+0

On dirait bien. Je vais essayer ça maintenant. – Ben

+0

J'essaye de faire ceci - http://oss.wxnet.org/mbeans.html. J'espère que cela fonctionnera. – Ben

3

Dans votre application, vous devez enregistrer le MBean avec le serveur MBean lorsque l'application est déployée. Pendant le déploiement de l'application Web, le MBean sera exposé. J'ai utilisé le Spring Framework JMX support pour faire cela dans Tomcat - mais il y a des façons de le faire sans Spring.

Questions connexes