Dienstag Jun 24, 2008

JMX unter Debian

Ich habe gestern gut über eine Stunde versucht, mich mit JMX zu einer Java-Anwendung auf einem Server zu verbinden: JConsole wollte mir partout keinen Einblick gewähren, dabei hatte ich alle com.sun.management.jmxremote-Parameter brav gesetzt und mich zum x-ten Mal versichert, dass dort keine Firewall läuft.

Ein kleines Java-Programm, dass sich zum gewünschten JMX-Port verbindet, hat dann endlich die Ursache aufgedeckt: Der JMX-Connector lief zwar auf dem gewünschten Port, aber die RMI-Registry hatte sich an die falsche IP-Adresse angebunden -- so lief der erste Teil des Verbindungsauflaufs glatt durch, aber beim Abfragen der ersten MBean war dann Schluss.

"Schuld" daran ist ein Update in Debian Linux (mittlerweile auch in Ubuntu angekommen), dass neben 127.0.0.1 in der /etc/hosts auch noch 127.0.1.1 (man beachte die vorletzte Eins!) hinzufügt. Die Begründung dazu finde ich immer noch recht schwammig, zumal es genügend Bugreports gegen diese Änderung gibt.

Unglücklicherweise entscheidet sich die RMI-Registry (zufällig?) für 127.0.1.1, was faktisch alle Verbindungen von extern verhindert.

Mögliche Lösungen hierfür:

  • die Zeile mit 127.0.1.1 in der /etc/hosts auskommentieren bzw. löschen
  • die Java-Anwendung mit -Djava.rmi.server.hostname=any.other.ip starten
Letzteres empfiehlt sich, wenn auf dem Server noch andere  (Nicht-Java-) Anwendungen laufen, die sich ähnlich quer stellen könnten, wenn auf einmal 127.0.1.1 nicht mehr da ist.
About

Alles rund um meine Tätigkeit als Campus Ambassador an der TU München, Tipps und Tricks zu Sun-Technologien und die Termine meiner Vorträge.

Search

Categories
Archives
« Juni 2008
MoDiMiDoFrSaSo
      
1
2
3
4
5
6
7
8
9
10
12
13
14
15
16
17
18
19
20
21
22
25
26
27
28
29
30
      
Heute