JConsole / JMX broken on Ubuntu

By , 11 February 2008

JConsole / JMX broken on Ubuntu

How annoying. I have just spent the last three hours trying to connect to Tomcat remotely using JConsole/JMX. It worked fine for one server, but not the other which was started with exactly the same settings. Eventually I found the problem: Ubuntu maps the hostname to 127.0.0.1 in /etc/hosts by default and this breaks the JMX protocol. It seems that JMX opens a separate socket stream for data (like FTP) and needs to provide the host's network address to do this.

Actually, my problem was already documented in the FAQ:
http://java.sun.com/j2se/1.5.0/docs/guide/management/faq.html

On a side note, I also had problems with Netbeans 6.0 being dog slow on Ubuntu. It seems to have had something to do with the GTK look and feel, because I fixed it by adding --laf javax.swing.plaf.metal.MetalLookAndFeel to the startup options in ${nbhome}/etc/netbeans.conf. It runs great now.

JConsole / JMX broken on Ubuntu

About Roger Keays

JConsole / JMX broken on Ubuntu

I guess I'd call myself a problem solver. Either that, or I'm some sort of organic machine designed to convert oxygen into carbon dioxide. You could go either way on that. I'm into languages and stuff. I wrote a book. It's okay, I guess. What else? I like reading, swimming, eating, and playing music. Satisfied? Sheesh.

Leave a Comment

Please visit https://rogerkeays.com/blog/jconsole-jmx-broken-on-ubuntu to add your comments.

Comment posted by: , 9 years ago

Hey Dave, I can't this of anything that will work using /etc/hosts, but maybe you can use a dynamic dns server (dyndns.com, no-ip.com) so that your hostname always resolves to the correct IP. Or it might just be easier to update /etc/hosts by hand when your IP changes.

Comment posted by: Dave, 9 years ago

I have the same problem as you, but I also have a dynamic IP address provided by a DHCP server.  Any idea what my /ect/hosts entry should be to get jconsole working?  Thanks!