2009-08-17 6 views
2

Ich möchte Web-Anwendungen unter Tomcat mit JMX überwachen.Wie soll ich eine Webanwendung auf Tomcat mit JMX überwachen?

Ich möchte nicht nur die eingebaute JMX-Implementierung von Tomcat verwenden, ich möchte eine mbean für die eigentliche Webanwendung implementieren, damit ich Informationen zu anwendungsspezifischen Einstellungen abrufen und überwachen kann. Das Problem mit Web-Anwendungen und Online-Überwachung ist, dass Web-Anwendungen nicht immer aktiv sind, sondern "aufwachen", um Anfragen vom Server zu behandeln, so dass sie nicht nur mit JMX einstöpseln, wie ich es für einen normalen laufenden Prozess tun würde.

Wie lässt Tomcat Anwendungen im Hintergrund laufen (wie ein Singleton), damit ich mich jederzeit damit verbinden kann?

Gibt es eine Möglichkeit, dies zu tun, die üblich ist und mir nicht bekannt ist?

Danke!

Antwort

2

Sie können eine Klasse erstellen, die ServletContextListener implementiert, und dann diesen Listener in Ihre web.xml laden.

Die Klasse:

public class ServerListener implements ServletContextListener { 

    public void contextDestroyed(ServletContextEvent pSce) { 
    } 

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

Die web.xml:

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

Sieht gut aus. Ich werde es jetzt versuchen. – Ben

+0

Ich versuche dies zu tun - http://oss.wxnet.org/mbeans.html. Hoffentlich wird das funktionieren. – Ben

3

In Ihrer App müssen Sie die MBean mit dem MBean-Server registrieren, wenn die Anwendung bereitgestellt wird. Während die Webanwendung bereitgestellt wird, wird die MBean verfügbar gemacht. Ich habe die Spring Framework JMX support verwendet, um dies in Tomcat zu tun - aber es gibt Möglichkeiten, dies ohne Spring zu tun.

Verwandte Themen