ActiveMQ Queue Test

An ActiveMQ queue is a messaging construct used for point-to-point communication, allowing messages to be reliably stored and processed in a first-in, first-out order. The queue is a fundamental component in ActiveMQ and is commonly used in various messaging scenarios to facilitate asynchronous communication between components or services.

This test monitors the queue and collect some of the key metrics like count of producers, consumers, size of queue 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 queue 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

Producer count

Indicates the total number of producers who are publishing messages to this queue.

Number

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

Consumer count

Indicates the total number of consumers who are receiving messages from this queue.

Number

Ideally the number should be optimal, and this doesn't directly correspond to the number of producers. If the value of this measures is low, it indicates that there are inadequate consumers to consume majority of messages in the queue. This may lead to congestion in the queue.

Queue size

Indicates the number of messages available on this queue.

Number

If the size of queue is gradually increasing over the period of time, it may indicate issues at consumer side or queue expiration policy.

Dequeue count

Indicates the total number of messages deleted from this queue since the last restart.

Number

 

Enqueue count

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

Number

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

Dispatch count

Indicates the total number of messages sent to consumer sessions from this queue.

Number

Number of messages delivered should be near to the number of messages produced.

Expired count

Indicates the total number of messages that were not delivered from this queue because they expired.

Number

As per the queue expiration policy, messages expire after some time if not delivered to right consumer. a large count indicates that there are not enough consumers.

Inflight count

Indicates the total number of messages that were sent to consumer sessions from this queue but have not received acknowledgment.

Number

The value of this measure should be very low.

Subscriptions

Indicates the number of subscriptions made to this queue.

Number

There is no hard limit to number of subscription to the queue but the number should be optimal for best performance.

DLQ

Indicates whether/not this queue is a DLQ (Dead Letter Queue).

 

A dead-letter queue (DLQ) is a special type of message queue that temporarily stores messages that a software system cannot process due to errors.

The numeric values that correspond to these measure values are as follows:

Measure Value Numeric Value
True 0
False 1

Note:

By default, this measure reports the Measure Values listed in the table above to indicate whether the queue is DLQ or not. In the graph of this measure however, the same is indicated using the numeric equivalents only.

Average message size

Indicates the average size of messages published to this queue.

Bytes

Although there is no limitation on the size of messages, high average size could explain slow delivery of messages.

Maximum page size

Indicates the maximum number of messages that can be paged in from this queue.

Number

Increase this value to improve performance for queue destinations that contain grouped messages that are consumed by multiple concurrent consumers.

Maximum enqueue time

Indicates the maximum amount of time for which the messages in this queue remained enqueued.

Seconds

A high enqueue time for few messages could be due to large message size, average enqueue time is a better indicator of queue performance assuming the sizes are properly distributed.

 

 

Minimum enqueue time

Indicates the minimum amount of time for which the messages in this queue remained enqueued.

Seconds

Average enqueue time

Indicates the average amount of time the messages in this queue remained enqueued.

Seconds

Memory limit

Indicates the memory limit configured for holding undelivered messages before paging in to a temporary queue from this queue.

MB

 

Memory percentage usage

Indicates the percentage of memory used by this queue.

Percentage

 

Memory usage byte count

Indicates the amount of memory used by this queue.

MB

A low value is preferred for this measure.