ActiveMQ Broker Details Test

ActiveMQ is the most commonly used message broker for enterprise applications. A message broker is a mediator between software components which can act as a message carrier. ActiveMQ stores messages in relevant queues which were published by publisher applications and these messages can be read by consumer applications. Connecting applications depend completely on ActiveMQ broker for any inter-application and sometimes even intra-application communication. Any problem with ActiveMQ broker can cause the messaging to be interrupted, and as a result can bring down the operation of applications to a halt. This is the reason, it is absolutely important to monitor the broker, so that any issues can be preempted and uninterrupted operation of applications can be ensured.

This test monitors the ActiveMQ Broker and collects some of the key metrics like count of producers, consumers, message count, message size etc. The trends of these metrics provide valuable insights to the administrators about the current and potential problems. Using these insights, administrators can handle the problem before it causes performance dissipation.

Target of the test : An Active MQ Server

Agent deploying the test : An internal/remote agent.

Outputs of the test : One set of results for each broker in ActiveMQ Server

Configurable parameters for the test

Parameter

Description

Test period

How often should the test be executed.

Host

The host for which the test is to be configured.

Port

The port at which the specified host listens. Default value is 8161.

Timeout

Specify the duration (in seconds) for which this test should wait for a response from the target ActiveMQ Server. If there is no response from the target beyond the configured duration, the test will timeout. By default, this is set to 240 seconds.

JMX Remote Port

Specify the port at which the JMX listens for requests from remote hosts. Ensure that you specify the same port that you configured in the management.properties file in the <JAVA_HOME>\jre\lib\management folder used by the ActiveMQ Server.

JNDI Name

Specify the lookup name for connecting to the JMX connector of the ActiveMQ Server. By default, this is jmxmi.

JMX User, JMX Password and Confirm Password

These parameters appear only if the Measurement Mode is set to jmx. If JMX requires authentication only (but no security), then ensure that the JMX User and JMX Password parameters are configured with the credentials of a user with read-write access to JMX.

JMX Registry SSL

If you have registered the JMX connector in an SSL-enabled RMI registry , set this flag to Yes. By default, this is set to No.

Measurements made by the test

Measurement

Description

Measurement Unit

Interpretation

Total producers on the broker

Indicates the total number of producers that are publishing the messages to this broker.

Number

If there is a very large number of producers publishing to broker, it is just matter of time before system will start experiencing performance issues. If the number of producers in increasing, the administrators may need to augment capacity or add more brokers.

Total consumers on the broker

Indicates the total number of consumers that are receiving the messages from this broker.

Number

Ideally the number should be optimal, and this doesn't directly correspond to the number of producers. Important thing is there should be adequate consumers to consume majority of messages so that messages can be deleted and space can be freed up.

Total messages on the broker

Indicates the number of messages published on this broker.

Number

If the count of messages at any given point is too high, it might mean the messages are not getting consumed. Administrators need to set or reduce the message expiry duration to reduce the load on the server.

Average message size

Indicates the average size of the messages being published on this broker.

Bytes

While there is no limit to the size of messages on ActiveMQ broker, the broker can only support small number of large messages.

Current enqueue count

Indicates the number of messages sent to this broker since the last restart.

Number

Together with dequeue count, a high number indicates healthy use of queue.

Current dequeue count

Indicates the number of messages deleted from thos broker since the last restart.

Number

Together with enqueue count, a high number indicates healthy use of queue.

Queue producers

Indicates the number of producers sending messages to a specified queue within this broker.

Number

If there is a very large number of producers publishing to broker, it is just matter of time before system will start experiencing performance issues. If the number of producers in increasing, the administrators may need to augment capacity or add more brokers.

Queue subscribers

Indicates the number of consumers listening to a specific queue on this broker.

Number

Ideally the number should be optimal, and this doesn't directly correspond to the number of producers. Important thing is there should be adequate consumers to consume majority of messages so that messages can be deleted and space can be freed up.

Temporary queues

Indicates the number of temporary queues which exist only through the lifetime of the connection.

Number

Large number of temporary queues/topics cause problem for administrators in planning the capacity for the broker. If the temp queue is long running it is worth considering to convert that to permanent queue.

Temporary queue producers

Indicates the number of producers sending messages to a specified temporary queue within JMS provider.

Number

Not many producers and consumers should be dependent on temporary queues.

Temporary queue subscribers

Indicates the umber of consumers listening to the temporary queue on JMS provider.

Number

Not many producers and consumers should be dependent on temporary queues.

Topic producers

Indicates the number of producers sending messages to a specified topic queue within JMS provider.

Number

If there is a very large number of producers publishing to broker, it is just matter of time before system will start experiencing performance issues. If the number of producers in increasing, the administrators may need to augment capacity or add more brokers.

Topic subscribers

Indicates the number of consumers listening to the topic queue on JMS provider. All subscribers listening to the topic receive the message.

Number

Ideally the number should be optimal, and this doesn't directly correspond to the number of producers. Important thing is there should be adequate consumers to consume majority of messages so that messages can be deleted and space can be freed up.

Temporary topics

Indicates the number of topics which exist only through the lifetime of the connection.

Number

Large number of temporary queues/topics cause problem for administrators in planning the capacity for the broker. If the temp queue is long running it is worth considering to convert that to permanent queue.

Temporary topic producers

Indicates the number of producers sending messages to a specified temporary topic within JMS provider.

Number

Not many producers and consumers should be dependent on temporary topics.

Temporary topic subscribers

Indicates the number of consumers listening to the temporary queue on JMS provider.

Number

Not many producers and consumers should be dependent on temporary topics.

Durable topic subscribers

Indicates the number of durable subscribers. Durable subscribers can receive already published messages when they are back online.

Number

Durable subscribers come with additional ask for storage of message without a expiration time. This adds to the memory requirement of the broker.

Inactive durable topic subscribers

Indicates the number of inactive durable subscribers. ActiveMQ will store messages marked “persistent” into a non-volatile store and wait for a subscriber to rejoin the subscription. At that point it will try to deliver messages.

Number

Administrators should immediately investigate the inactive durable subscribers because if these are not available for consuming the messages, the message wil be indefinitely stored on the broker.

Memory limit

Indicates the memory limit in bytes, used for holding undelivered messages before paging to temporary storage.

MB

It's a limiting factor for storing the message and can be increased to improve capacity but the inactive subscribers should be removed first.

Memory percentage usage

Indicates the percentage of memory allocated for the broker to keep track of destinations, cache messages etc.

Percentage

If the percentage usage is high, it will be difficult for broker to reliably deliver the messages, administrators may need to add more memory or clear the queues.

Store limit

Indicates the assigned disk space to store persistent messages.

MB

It's a limiting factor for storing the message and can be increased to improve capacity but the inactive subscribers should be removed first.

Store percentage usage

Indicates the percentage of the assigned disk space that has been used up to store persistent messages.

Percentage

If the percentage usage is high, it will be difficult for broker to reliably deliver the messages, administrators may need to add more memory or clear the queues.

Temporary limit

Indicates the percentage of the assigned disk space that has been used up to store persistent messages.

MB

Memory dedicated for temporary queues should ideally be small.

Temporary percentage usage

Indicates the percentage of the assigned disk storage that has been used up to spool non-persistent messages.

Percentage

If the percentage usage is high, it will be difficult for broker to reliably deliver the messages, administrators may need to add more memory or clear the queues.