Programmierung

Wege durch den Schutzwall

Der Stein rollt, aber es bröckelt: Änderungen, die es leichter machen sollten, sich durch eine Firewall mit einem JMX-Server zu verbinden, wurden diese Woche aus der Feature-Liste für Java 7 gestrichen. Begründet wurde der Schritt mit der zu knapp gewordenen Zeit: Schließlich soll Java 7 nun endlich Anfang Juni fertig und Ende Juli allgemein verfügbar sein.

(Java Management Extensions – JMX, mit Java 5 eingeführt und in Java 6 stark erweitert, ist eine Spezifikation zur Verwaltung und Überwachung der Java VM – der virtuellen Maschine der Java-Laufzeitumgebung – und von instrumentierten Java-Anwendungen. Ein Agent stellt eine Schnittstelle zum Auffinden und den Zugriff auf managed beans bereit, kurz auch MBeans, „Kaffeebohnen“ zum Management von Ressourcen. Mit einer Client-Applikation, etwa dem mit dem Java Development Kit mitgelieferten JConsole, kann ein Anwender, i.A. ein Systemadministrator, Abfragen gegen diese Schnittstelle durchführen, um Informationen über den Zustand der VM zu erhalten oder einer in der VM laufenden Anwendung – sofern diese ein entsprechendes MBean exponiert – und auch Operationen auf den Bohnen auszuführen.)

Ein Problem mit der Konnektivität ergibt sich bei JConsole – welches sich über RMI (Remote Method Interface) mit dem JMX Agent verbindet – wenn sich der Agent hinter einer Firewall befindet. RMI wählt den Port für die Rückgabe normalerweise dynamisch und willkürlich. Beim Standard-JMX-Agent kann jedoch nur der Port, auf dem RMI auf Verbindungsanfragen lauscht, als Parameter angegeben werden, sodass also der Port für den Austausch zwischen den Objekten nicht vorab in der Firewall freigeschaltet werden kann.

Es gibt aber einen Ausweg aus dieser Situation. Dieser nutzt das dynamische Laden von Agenten durch die VM aus. Ein eigener Agent muss lediglich eine RMI-Registry mit dem einen Port und einen JMXConnectorServer mit dem anderen Port instanzieren. Weil dieser Umweg nicht ganz einfach und auch nicht unproblematisch ist, enttäuscht es ein wenig, dass die konfiguratorische Lösung, die ursprünglich für Java 7 versprochen wurde, wieder auf sich warten lassen wird. Das Grundrezept für die programmatische Lösung, die nun weiter Bestand haben wird, wird im Java SE Monitoring and Management Guide in einem Abschnitt zur Problematik beschrieben.

21. Mai 2011 von Kai Yves Linden
Kategorien: Programmierung | Schlagwörter: , | Kommentare deaktiviert für Wege durch den Schutzwall