2009-08-20 13 views
1

Ich habe den Prozess auf this Seite durchlaufen, um die JMX-Schnittstelle einer Webanwendung verfügbar zu machen.So verwalten Sie eine JMX-Webanwendung

Ich habe es geschafft, die exponierte Schnittstelle auf dem Tomcat JMX-Proxy anzuzeigen, aber wenn ich JConsole lade und nach der exponierten mbean-Schnittstelle suche, kann ich nichts im Zusammenhang mit den exponierten Attributen und Operationen finden.

Es gibt keinen speziellen Eintrag auf jconsole für die Web-App, also dachte ich, es könnte unter dem TOMCAT jmx-Eintrag sein. Es ist nicht. (Kaum im Kopf, habe ich es geschafft, es auf der Tomcat jmx-Proxy-Seite zu sehen).

Wie kann ich meine Webanwendung lokal verwalten? Warum zeigt JConsole es nicht an?

+0

Welche Version von Tomcat und welche Version von Java? – skaffman

+0

Java 1.6 mit Tomcat 6.0 – Ben

+0

Ich habe es geschafft, dies zu tun. Ich schreibe einen Post darüber und werde es veröffentlichen, sobald es fertig ist. – Ben

Antwort

3

Ich habe es geschafft, dies zu beheben, indem Sie ein paar grundlegende Schritte zu tun -

  1. Im Webapp Kontext Zuhörer contextInitialized Methode, instanziiert ich eine Singleton-Klasse, die die mbean (das Servlet selbst implementieren kann nicht laufen und implementieren eine mbean, weil sie nur aufwacht, um Anfragen vom Server entgegenzunehmen).
  2. Das Servlet "informiert" den Singleton jeder Operation, die wir überwachen wollen, und der Singleton ist derjenige, der dies über jmx meldet.
  3. Im Singleton mich mit dem mbean Server mit diesem Befehl registriert.

    ManagementFactory.getPlatformMBeanServer() registerMBean (this, name);

Das ist es. (In einer Nussschale)

+0

Wie funktioniert Ihr Entwurf, wenn Sie in einem Cluster bereitstellen müssen (da Sie Abhängigkeiten von einem Singleton haben ...)? –

+0

Guter Anruf. Tatsächlich arbeitet mein Kollege daran, diese Lösung zu einer clusterfreundlichen Lösung zu machen. Ich werde aktualisieren, wenn ich die Informationen habe. – Ben

Verwandte Themen