JMX over JMS

Java Management Extensions (JMX) provides a standard framework for managing Java applications. For remote access to a JMX agent, the JMX allows for pluggable communication protocols (the default is RMI). There are advantages to using JMS (via Lingo) for the communication protocol:

  • performance
  • push-based notifications
  • logically grouping of JMX Agents (e.g. a cluster) - with one view.

The Lingo connector invokes remote operations on the MBeanServer (using Queues) but uses Topics for broadcasting notifications back to the client

Using the Lingo JMX Connector

To enable remote management the first thing you need to do is attach a Lingo Connector to you're MBean Server:

On the to connect from a client - you can do the following:


By default, any MBeanServer on the JMS network that is using a Lingo Connector can be accessed remotely. Lingo will assume that any MBean servers it connects too form part of a logical group - and will aggregate results from operations or queries on mbeans.

Lingo uses wild cards in the destinationName for communication between the MBean server(s) and remote client - but these properties can be overriden in the environment map used to initialize the lingo connector and lingo connector server:

property name

default value





Using JConsole

If you wish to use the Lingo from JConsole you need to do the following:

  • have Lingo and associated jars on the class path
  • set jmx.remote.protocol.provider.pkgs=org.logicblaze.lingo.jmx.remote.provider as a System property
  • In the JConsole Connect agent - in the Advanced Tab - use the appropiate URL to connect the JMS service - e.g. service:jmx:jms:///tcp://localhost:6000"
Powered by Atlassian Confluence