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