Hi jmx-dev, hopefully this is the right mailing list for this :) JMX is a great technology for adding management capabilities to your Java apps. We use it extensively to monitor and control our running applications.
However, the default RMI connector doesn’t play nicely with a lot of new networking technologies. Anything from firewalls to NAT to running inside of a Linux (or Docker) container makes RMI’s requirement of opening a random port extremely onerous. It is possible to get the default RMI connector to use fixed ports, but it’s not easy at all. Luckily, there’s the JMXMP connector! It’s nicer in almost every way - uses a single port, you can specify a fixed port to listen on in the connector server URI, etc. The only downside is that you need jmxremote_optional.jar included on your classpath. This is even more inconvenient once you realize that you have to do the same to every installation of jconsole and visualvm for every developer that wants to connect to a JMXMP enabled service. There’s a number of articles pointing this out on the internet at large, but seemingly most Java devs still don’t know about it - presumably because it’s not installed by default. Is there any possibility of promoting the JMXMP connector out of jmxremote_optional into the base JDK, perhaps in time for Java 9? Thanks for considering, Steven
