eG Monitoring
 

Measures reported by TibEMSSrvMsgTest

Messages are structured data that one application sends to another. Typically, the messages sent by an application are either delivered to a queue on the EMS server or published to a topic on the EMS server. In addition, you may have one/more messages that just wait on the EMS server pending delivery to a queue or a topic - this could be because of the messages being too large in size or the queue/topic being too crowded already to accomodate more messages.

This test takes stock of all the messages on an EMS server, regardless of where they are (whether queue/topic/pending delivery to queue or topic), and reports a wealth of performance statistics pertaining to the memory and storage space used by these messages on the server.  The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Pending_messages Indicates the number of pending messages on the server. Number If a consistent and significant increase is noticed in the value of this measure over a period of time, it could indicate either or both the following:
  • A number of messages are still waiting to be delivered to queues or topics;
  • Consumers are not / are unable to retrieve many messages from the queues/topics

If this situation continues, it can unduly overload the server, forcing it to stall message delivery and return errors to the producers; this in turn may cause critical messages to not reach consumers on time. In this case therefore, the bottleneck areas must be identified and resolved quickly.

Pending_msg_size Indicates the total size of all the pending messages on the server. KB Ideally, the value of this measure should be low. While sporadic spikes in the value are normal and may indicate the entry of one/more bulky messages, a steady increase in the value of this measure over time could be a cause for concern, as it may induce the excessive consumption of the storage capacity of the server. This space erosion can adversely impact the overall server performance.

To avoid such adversities, you might want to consider fine-tuning the EMS server to handle pending messages better. For instance, you can use the maxBytes configuration parameter of a queue/topic. maxbytes defines the maximum size (in bytes) of all messages that can be waiting in a queue or waiting to be delivered to the durable subscribers of a topic. By reducing the maxBytes of a queue/topic, you can reduce the size of all messages held by that destination, thus significantly reducing the resource foot-print of the messages within. If this limit is violated, the server returns an error to the producer.

Similarly, you can try enabling 'Flow control'. Flow control is a feature that controls the flow of messages to a destination. If this capability is enabled for the server, then, you can use the flowControl configuration parameter to configure each destination with a target maximum size for storing pending messages. If need be, you can reduce the flowControl value, so that the storage capacity utilized by messages waiting to be delivered to a destination is reduced. If this limit is violated, the server blocks producers from sending any more messages

Free_mg_memory Indicates the amount of storage memory unused on the server. KB Adequate storage memory should always be available on the server for storing messages. Excessive memory usage over time can exhaust the storage capacity of the server - the lack of sufficient memory can slowdown and can even bring to a halt, all server operations.

To avoid such adversities, you can regulate the space usage of the messages on the server. For instance, you can set the maxBytes threshold for a queue/topic. maxbytes defines the maximum size (in bytes) of all messages that can be waiting in a queue or waiting to be published to a topic. By reducing the maxBytes of a queue/topic, you can reduce the size of all messages held by that destination, thus significantly reducing the resource foot-print of the messages within. If this limit is violated, the server returns an error to the producer.

Similarly, you can try enabling 'Flow control'. Flow control is a feature that controls the flow of messages to a destination. If this capability is enabled for the server, then, you can use the flowControl configuration parameter to configure each destination with a target maximum size for storing pending messages. If need be, you can reduce the flowControl value, so that the storage capacity utilized by messages waiting to be delivered to a destination is reduced. If this limit is violated, the server blocks producers from sending any more messages.

Used_msg_memory Indicates the amount of storage memory that is currently in use for storing messages on the server. KB
Total_msg_memory Indicates the total memory allocated for storing messages on the server. KB
Percent_msg_mem_used Indicates the percentage of memory used for storing messages. Percent
Message_mem_pooled Indicates the size of the pools of storage allocated for messages. KB  
Sync_storage Indicates the size of the synchronous storage memory. KB A synchronous storage memory is the one which can store only one message at a time.
Async_storage Indicates the size of the asynchronous storage memory. KB A asynchronous storage memory is the one which allows multiple message storing at a time.
Fsync Indicates whether the "fail safe" is enabled or not for the synchronous storage. Number Critical message transaction will be done successfully by enabling the "fail safe" configuration for a specific queue. By this the messages for a "fail safe" queue are synchronously written to the disk.

By enabling this, the message transactions will not be lost even when the server goes down. In other words, this mode is decribed as “reliable mode”.

The value 0 for this measure indicates that the 'fail safe' mode is disabled and and the value 100 for this measure indicates the ‘fail safe’ is enabled.

Inbound_msg_rate Indicates the number of incoming messages to the message memory. Number  
Outbound_msg_rate Indicates the number of outgoing messages from the message memory. Number