Introduction
QMan is a Management bridge that exposes one (or several) Qpid broker domain model as MBeans that are accessible through the Java Management Extensions (JMX).
How to run QMan
Prerequisites
QMan is a standalone application that is packaged as qpid-management-client-incubating-M3.jar. To run QMan you need to add the following jars in your CLASSPATH:
- log4j-1.2.12.jar
- slf4j-api-1.4.0.jar
- slf4j-log4j12-1.4.0.jar
- commons-pool-1.4.jar
- commons-codec-1.3.jar
- commons-lang-2.2.jar
- commons-collections-3.2.jar
- commons-configuration-1.2.jar
- qpid-client-incubating-Mx.jar (were x is the current qpid version)
- qpid-common-incubating-Mx.jar (were x is the current qpid version)
alternatively you can run the following script (that add all the qpid jars to the CLASSPATH):
> CLASSPATH=`find <lib-root> -name '*.jar' | tr '\n' ":"`
Where <lib-root> is the directory containing the qpid jars (when qpid is built from source <lib-root> is equal to qpid/java/build/lib)
QMan can be connected at run time against any broker however it must first connect to a running broker. As default QMan will try to connect to a broker running on localhost port 5672.
The file config.xml that must be located in a directory referenced by the CLASSPATH can be used for configuring QMAN. The default content of this file is:
<configuration> <type-mappings> <mapping> <code>1</code> <class-name>org.apache.qpid.management.domain.model.type.Uint8</class-name> <validator-class-name>org.apache.qpid.management.domain.model.QpidProperty$NumberValidator </validator-class-name> </mapping> <mapping> <code>2</code> <class-name>org.apache.qpid.management.domain.model.type.Uint16</class-name> <validator-class-name>org.apache.qpid.management.domain.model.QpidProperty$NumberValidator </validator-class-name> </mapping> <mapping> <code>3</code> <class-name>org.apache.qpid.management.domain.model.type.Uint32</class-name> <validator-class-name>org.apache.qpid.management.domain.model.QpidProperty$NumberValidator </validator-class-name> </mapping> <mapping> <code>4</code> <class-name>org.apache.qpid.management.domain.model.type.Uint64</class-name> <validator-class-name>org.apache.qpid.management.domain.model.QpidProperty$NumberValidator< /validator-class-name> </mapping> <mapping> <code>6</code> <class-name>org.apache.qpid.management.domain.model.type.Str8</class-name> <validator-class-name>org.apache.qpid.management.domain.model.QpidProperty$StringValidator </validator-class-name> </mapping> <mapping> <code>7</code> <class-name>org.apache.qpid.management.domain.model.type.Str16</class-name> <validator-class-name>org.apache.qpid.management.domain.model.QpidProperty$StringValidator </validator-class-name> </mapping> <mapping> <code>8</code> <class-name>org.apache.qpid.management.domain.model.type.AbsTime </class-name> </mapping> <mapping> <code>9</code> <class-name>org.apache.qpid.management.domain.model.type.DeltaTime </class-name> </mapping> <mapping> <code>10</code> <class-name>org.apache.qpid.management.domain.model.type.ObjectReference</class-name> </mapping> <mapping> <code>11</code> <class-name>org.apache.qpid.management.domain.model.type.Boolean</class-name> </mapping> <mapping> <code>14</code> <class-name>org.apache.qpid.management.domain.model.type.Uuid</class-name> </mapping> <mapping> <code>15</code> <class-name>org.apache.qpid.management.domain.model.type.Map</class-name> </mapping> </type-mappings> <access-mode-mappings> <mapping> <code>1</code> <value>RC</value> </mapping> <mapping> <code>2</code> <value>RW</value> </mapping> <mapping> <code>3</code> <value>RO</value> </mapping> </access-mode-mappings> <brokers> <broker> <host>localhost</host> <port>5672</port> <virtual-host>test</virtual-host> <user>guest</user> <password>guest</password> <max-pool-capacity>4</max-pool-capacity> <initial-pool-capacity>0</initial-pool-capacity> <max-wait-timeout>-1</max-wait-timeout> </broker> </brokers> </configuration>
Several brokers can be added so that QMan will try to connect to those broker at starting time.
Running QMan
To run QMan in a console run the following command:
java org.apache.qpid.management.domain.services.QMan
Messages similar to those should be displayed:
... [org.apache.qpid.management.domain.services.QMan] <QMAN-000001> : Starting Q-Man... ... Type "q" to quit.
Stopping QMan
Type "q" In the console from which QMan has been started.
Browsing Manageable Beams
The jconsole tool (JMX-compliant graphical tool for monitoring a Java virtual machine) can be used for monitoring and QMan Mbeans. for more information see http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html
The jconsole executable can be found in JDK_HOME/bin, where JDK_HOME is the directory in which the JDK software is installed. If this directory is in your system path, you can start JConsole by simply typing jconsole in a console. Otherwise, you have to type the full path to the executable file.
As demonstrated on the following screen shot, once jconsole is running select the MBeans tab and select the Q-MAN set of MBeans.