Tibco EMS Messages Test

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.

Target of the test : A Tibco EMS Server

Agent deploying the test : An internal agent

Outputs of the test : One set of results for the Tibco EMS server being monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The IP address of the host for which this test is to be configured.

Port

Refers to the port at which the specified host listens to.

CommandPath

Prior to monitoring the Tibco EMS server, you will have to build a .bat or .sh file (depending upon the operating system on which Tibco EMS is functioning) bundled with the commands that the eG agent needs to execute on the Tibco EMS server for collecting the required metrics. The commands to be invoked by the .bat or .sh file are provided in How does eG Enterprise Monitor Tibco EMS?.

The .bat/.sh file so created can be saved to any location on the Tibco EMS host. Then, while configuring this test, make sure you provide the full path to this .bat or .sh file in the CommandPath text box so that, the agent can execute the file, invoke the commands bundled into it, and extract the desired metrics from the server.

Measurements made by the test
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:

  1. A number of messages are still waiting to be delivered to queues or topics;
  2. 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 message 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 message 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 message memory

Indicates the amount of storage memory that is currently in use for storing messages on the server.

 

KB

Total message memory

Indicates the total memory allocated for storing messages on the server.

KB

Message memory used

Indicates the percentage of memory used for storing messages.

Percent

Message memory pooled

Indicates the size of the pools of storage allocated for messages.

KB

 

Synchronous 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.

Asynchronous 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

A asynchronous storage memory is the one which allows multiple message storing at a time.

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 messages

Indicates the number of incoming messages to the message memory.

Number

 

Outbound messages

Indicates the number of outgoing messages from the message memory.

Number