JMX Definiert
Ich bin auf der Suche nach:
- Was JMX ist.
- Wo finde ich einige gute JMX
Tutorials. - Was JMX können, um mich als
Java EE Programmierer. - Muss ich irgendwas anderes beachten
von.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin auf der Suche nach:
Du musst angemeldet sein, um einen Kommentar abzugeben.
JMX ist eine Möglichkeit zum anzeigen und manipulieren der Laufzeit Status der Anwendung. Es ist ähnlich im Konzept zu SNMP, ob das hilft. IMO, es ist unerlässlich für die überwachung und das Verständnis server-Typ-Anwendungen, die nicht alle anderen Benutzer-Oberfläche neben dem schreiben einer log-Datei.
Der grundlegende Ansatz ist, eine Schnittstelle zu schaffen für die Dinge, die Sie überwachen möchten, dann haben Sie eine Klasse die das interface implementieren, dann registrieren Sie eine Instanz der Klasse mit dem "MBeanServer" (was macht eigentlich die Sachen, die im interface definiert sind zur Verfügung, um JMX-überwachungs-Anwendungen, wie jconsole).
Hier ist eine trivial-aber arbeitet-Beispiel:
(Ich gehe davon aus Java 5 oder besser)
TestServerMBean.java
TestServer.java:
Kompilieren und ausführen TestServer.class wie üblich, Feuer bis
jconsole
, die Verbindung zum TestServer (es wird automatisch angezeigt, sonst siehe Kommentar im code oben), dann schauen sich "MBeans" Registerkarte, und Sie werden sehen, unsere Instanz mit dem Namenmyapp:service=MyServer
. Sie können die aktuellen "uptime" und sehen Sie sichFooCounter
Einteilung alle 5 Sekunden. Sie können auch festlegen, FooCounter zu was auch immer (lange) Wert, den Sie möchten, und rufen Sie dasprintStuff
Methode mit beliebigen String-argument.Natürlich ist dies eine lächerliche "server", aber hoffentlich mit einem einfachen Beispiel arbeiten wird die veranschaulichen, das gesamte Konzept: in der Lage sein, einen Blick in und zu manipulieren, eine laufende app.
Es gibt eine Menge von zusätzlichen Funktionen und verschiedene Arten von MBeans, aber nur die Vanille JMX oben gezeigt wird, geht ein langer Weg, IMO.
In einer nussschale JMX erlaubt die Remote-Methoden aufgerufen werden, oder die Sicht freigelegt Daten aus dem inneren einer Laufenden JVM. Eine Menge von Anwendungen verwenden der JMX-auf eine Art anbringen einer remote-dashboard, um Ihre Laufenden JVMs, um remote-management.
Zum Beispiel, wenn Sie eine app-server läuft auf einer Maschine, mit der JMX-wäre es möglich, Einsicht in das zu schützende Informationen über diesen server. Es ist auch möglich, den code Ihres eigenen JMX MBeans, die können setzen Sie alle Variablen oder Methoden in Ihrer Anwendung. Die exponierte Variablen kann dann "abgefragt" aus der Ferne zu testen, die für bestimmte Bedingungen, die Sie darüber wissen möchte.
Andere nützliche Sache über JMX ist, dass man aus der Ferne ändern Sie die Variablen auf das Fliegen. Zum Beispiel, wenn Sie haben eine Art pool eingerichtet, der eine maximale Summe, diesem Höchstbetrag können über Fernsteuerung geändert werden, ohne dass ein Neustart oder änderung der Konfiguration-Dateien auf Ihrem Anwendung-server.
jconsole
ist von Sun mit Java in der Lage sein leicht sehen Sie Ihre MBeans aus der Ferne, ohne code Ihre eigenen client-Lösung. Sie könnten auch verbrauchen die MBeans mit einer benutzerdefinierten Lösung, die Ihnen ausgezeichnete Flexibilität.Außerdem gibt es bereits einige monitoring-software, die mit der JMX-MBean-überwachung eingebaut. Zenoss und Applications Manager 8 tun dies, um ein paar Namen.
Zusatz:
Gibt es bereits eine Menge software, die die Vorteile von JMX. Tomcat stellt Informationen, erreichbar über jconsole und so ist der JBoss Application Server.
Vielleicht JSR 262 ist auch Wert, hier erwähnt zu werden.
"JSR 262 definiert einen Anschluss für die JMX-Remote-API, die Web-Services nutzt, um JMX instrumentation, Remote verfügbar. Clients müssen nicht sein, Java-Anwendungen, kann aber sein."
Ist es sehr wahrscheinlich, dass JSR 262 wird Teil der nächsten Java-version (Java 7).
Es ist ein java.net Projekt für eine JMX-WS-Anschluss das hängt davon ab,WiseMan Projekt. Wiseman ist ein Open-Source-Java-Implementierung von WS-Management-standard.
Hier sind einige anständige web-Ressourcen:
Diese zwei lese ich beim ersten Lesen bis auf JMX.
Sun Tutorial: http://java.sun.com/docs/books/tutorial/jmx/index.html
Spring 2.5/JMX: http://static.springframework.org/spring/docs/2.5.x/reference/jmx.html
Oder Sie können gehen sehen den JMX-tag wiki hier auf StackOverflow habe ich aktualisiert, es vor ein paar Tagen auf der Liste ziemlich viel, was Sie verlangte, und einige trugen zusätzliche info:
https://stackoverflow.com/tags/jmx/info