Solace Client TCP Queues Test

For a published message to be delivered to a client, it passes through one of the five per-client priority data queues. A scheduler then selects the message and places the same into a single, per-client Transmission Control Protocol (TCP) transmit queue.

For Direct messages, the Class of Service (COS) value the publishing client application sets for the message determines which per-client priority queue each message is enqueued to:

  • COS 1 (C-1) - the message goes to the Direct 1 (D-1) queue (the lowest priority)

  • COS 2 (C-2) - the message goes to the Direct 2 (D-2) queue (medium priority)

  • COS 3 (C-3) - the message goes to the Direct 3 (D-3) queue (the high priority)

All Guaranteed messages are enqueued to the Guaranteed 1 (G-1) queue. A Guaranteed message also has an assigned COS value, however, this value determines the message’s discard eligibility when its destination endpoint is congested. COS 1 indicates that the message is low priority; COS 3 indicates that the message is high priority. (COS 2 is a reserved Solace value; currently a message with a COS of 2 is treated as low priority.)

The act of enqueuing the message triggers the TCP stack to evaluate if the connection can send more data from that queue. If the TCP stack determines that it is acceptable to send data on the TCP connection, then data from the message is copied to a per-port transmit queue. After the message is delivered, the data remains on the TCP transmit queue until it is acknowledged by the client through a TCP ACK message.

The per-client priority queues have a configurable maximum depth that is measured in work units of 2,048 bytes. When these queues become full, the older messages currently queued are discarded (oldest first), replaced by the newer incoming messages. Once a message discard occurs due to the queue being full, the receiving client is notified of it through a discard indication published with the message immediately following the discarded messages. Frequent message discards noticed on a queue of a queue priority is an indication for the administrators to analyze the real reason behind such discarded messages. To figure out if the messages in the queue are discarded frequently and if the queue is nearing its maximum limit, administrators can use the Solace Client TCP Queues test.

This test auto-discovers all the queues in each Message VPN based on the queue priority, and for each queue, this test reveals the count of messages that were delivered and discarded. This test also helps administrators figure out those queues that are almost full. Using this test, administrators can identify those queues from which maximum number of messages were discarded frequently.

Target of the test : A Solace PubSub+ Event Broker

Agent deploying the test : A remote agent

Outputs of the test : One set of results for each Virtual Router:Message VPN:Client:Queue with Queue priority combination on the target Solace PubSub+ Event Broker being monitored

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

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

Port

Refers to the port at which the Solace PubSub+ Event Broker listens to.

UserName and Password

By default, the eG agent executes SEMP ( Solace Element Management Protocol) APIs on the target broker to collect the required metrics. For the eG agent to execute the SEMP APIs, a special user with read only privilege is required. Specify the credentials of such a user in the UserName and Password text boxes. To know how to create such a user, refer to Creating a New User for Monitoring Solace PubSub+ Event Broker.

Confirm Password

Confirm the Password by retyping it in the Confirm Password text box.

SSL

By default, this flag is set to No indicating that the Solace PubSub+ Event Broker is not SSL-enabled by default. Set this flag to Yes if the Solace PubSub+ Event Broker is SSL-enabled.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Delivered messages

Indicates the number of messages that were delivered to this queue during the last measurement period.

Number

 

Discarded messages

Indicates the number of messages that were discarded from this queue during the last measurement period.

Number

A high value for this measure indicates that the queue is full. When the queue is full, the older messages currently queued are discarded (oldest first), replaced by the newer incoming messages.

Compare the value of this measure across the queues to identify the queue from which maximum number of messages are discarded.

Queue length

Indicates the length of this queue.

Messages

 

Queue size

Indicates the size this queue.

KB

 

High water mark

Indicates the size of the messages with high water mark in this queue.

KB

 

Maximum queue size

Indicates the maximum size of this queue.

KB

 

Queue utilization

Indicates the percentage utilization of this queue.

Percent

A high value for this measure indicates that the queue is almost full.

Compare the value of this measure across queues to identify the queue that is being utilized to the maximum.