Message Queue MBeans

Message Queue's JMX functionality is exposed through MBeans associated
with various Message Queue resources. These MBeans are of two kinds: resource
MBeans and manager MBeans. The attributes,
operations, and notifications available for each type of MBean are described
in detail in Chapter 3, Message Queue MBean Reference.

Resource MBeans

Resource MBeans are associated with individual Message Queue resources
of the following types:

Message brokers

Connection services

Connections

Destinations

Broker clusters

Logging

The Java Virtual Machine (JVM)

Configuration and monitoring functions are implemented by separate MBeans.
Each managed resource is associated with a configuration MBean for
setting the resource's configuration and a monitor MBean for gathering (typically
transient) information about its runtime state. For instance, there is a destination
configuration MBean for configuring a destination and a destination monitor
MBean for obtaining runtime information about it. In general, each instance
of a managed resource has its own pair of MBeans: thus there is a separate
destination configuration MBean and destination monitor MBean for each individual
destination. (In the case of the Java Virtual Machine, there is only a JVM monitor MBean with no corresponding configuration
MBean.)

Configuration MBeans are used to perform such tasks as the following:

Set a broker's port number

Set a broker's maximum message size

Pause a connection service

Set the maximum number of threads for a connection service

Purge all messages from a destination

Set the level of logging information to be written to an output
channel

Monitor MBeans are used to obtain runtime information such as the following:

The current number of connections on a service

The cumulative number of messages received by a destination
since the broker was started

The current state (running or paused) of a queue destination

The current number of message producers for a topic destination

The host name and port number of a cluster's master broker

The current JVM heap size

Manager MBeans

In addition to the resource MBeans associated with individual resources,
there are also manager MBeans for managing some whole
categories of resources. These manager MBeans also come in pairs—one
for configuration and one for monitoring—for the following resource
categories:

Connection services

Connections

Destinations

Message producers

Message consumers

Transactions

Unlike individual resource MBeans, a broker has only one pair of manager
MBeans for each whole category of resources: for instance, a single destination
manager configuration MBean and a single destination manager monitor MBean.
For some categories (connection services, connections, destinations), the
manager MBeans exist in addition to the ones for individual resources, and
are used to manage the collection of resource MBeans within the category or
to perform global tasks that are beyond the scope of individual resource MBeans.
Thus, for instance, there is a connection manager configuration MBean and
a connection manager monitor MBean in addition to the connection configuration
and connection monitor MBeans associated with individual connections. Manager
MBeans of this type are used to perform tasks such as the following:

Get the object names of the connection service
monitor MBeans for all available connection services

Get the total number of current connections

Destroy a connection

Create or destroy a destination

Enable or disable auto-creation of destinations

Pause message delivery for all destinations

In other cases (message producers, message consumers, transactions),
there are no MBeans associated with individual resources and all of the resources
in the category are managed through the manager MBeans themselves. The manager
MBeans for these categories can be used for such tasks as the following:

Get the destination name associated with a message producer

Purge all messages from a durable subscriber

Commit or roll back a transaction

Object Names

Each individual MBean is designated by an object name belonging
to the JMX class ObjectName,
which encapsulates a string identifying the MBean. For Message Queue MBeans,
the encapsulated name string has the following syntax:

For destination configuration and destination monitor MBeans, the object
name's desttype property specifies whether the destination
is a point-to-point queue or a publish/subscribe topic. Table 1–4 shows the possible values, which are defined for convenience
as static constants in the utility class DestinationType.

Table 1–4 Destination Types

Value

Utility Constant

Meaning

q

DestinationType.QUEUE

Queue (point-to-point) destination

t

DestinationType.TOPIC

Topic (publish/subscribe) destination

For service configuration and service monitor MBeans, the object name's name property identifies the connection service with which the
MBean is associated. Table 1–5 shows
the possible values.

The object names for each type
of Message Queue MBean are given in the relevant sections of Chapter 3, Message Queue MBean Reference. All
such names are either defined as static constants or returned by static methods
in the utility class MQObjectName (see Table 1–7). For instance, the constant

MQObjectName.BROKER_CONFIG_MBEAN_NAME

is defined as a string representing the object name for a broker configuration
MBean, and the method call

returns the destination monitor MBean object name shown in Table 1–6. Note that, whereas methods such
as createDestinationMonitor return an actual object
name (that is, an object of class ObjectName) that
can be assigned directly to a variable of that type