What Didn’t Work
I was trying to chase down a performance issue in a RESTful service. It looked like a concurrency bottleneck so I fired up VisualVM and attached it to the container… fail. Turns out JBoss doesn’t play that way. If you search the internet for how to connect to the the JMX port of JBoss you’ll find a graveyard of old posts each specific to a select range of JBoss versions, and then further divided between Linux and Windows (I needed Windows, the road less travelled).
What Eventually Did Work
I found a github project covering JBoss 7.1 and “jvisualvm” – and with some tweaking – got it to work on JBoss 6.4 and the current VisualVM. My work is on github.
Basically you need to add various jars from JBoss into VisualVM’s CLASSPATH and then you can “Add JMX Connection…” of the following form:
Where the hostname is the JBoss server’s host and the port is the server’s admin port. So in my case, for a standalone server on my laptop, the connection string was service:jmx:remoting-jmx://localhost:9999 and you need to provide credentials and turn off SSL.