Queue: It's a Noun... It's a Verb... It's Both (1 of 2)
Queue as a noun, represents a list of objects, commands, etc., stored in a retrievable, definite order in the order of insertion.
Queue as a verb, represents an operation to (re)arrange items from the set of operations such as dequeue, browse, replicate, empty, etc available on a queue.
Solace Queues are created and managed by configurations that determine lifecycle characteristics and operational controls. These queue settings determine the behavior of the queue at run-time.
Solace Queues at design-time
Design Time configurations (Part 1)
Following are some of the configurations that control the runtime functioning of the queue. Solace queues offer numerous nuanced controls that can empower the designers to build systems suited and performant for their specific needs.
1. Message Flow control
A queue supports both receipts of incoming messages and retrieval of queued messages. Flow control parameters allow you to enable or disable queueing or dequeuing of messages from the queue. This is useful to control the flow for diagnostic or operational purposes in runtime without disrupting the entire ecosystem.
2. Access Type
Queued Messages are delivered to consumers on request. This parameter determines the nature of delivery exclusive vs non-exclusive. An exclusive delivery mode delivers all the messages to the first bound consumer flow and a non-exclusive mode delivers to all bound flows in a round-robin fashion.
The same configuration can be viewed in HA & LB parlance
3. Message Queued Quota
The queue capacity is directly proportional to the allocated storage (spool size), care must be taken to configure this parameter suiting business requirements. A +ve number would hint at required storage in MBs. A value of 0 can accomplish something unique with the spooling of only the LAST received message - a case useful for special use cases without writing a single line of code.
4. Message Queued Quota - Usage Alert
Having defined a spool size, usage alert facility to alert on a low and high threshold would help resource monitoring and take proactive actions.
5. Maximum Consumer
a) Maximum Consumer Count
A control to limit the maximum number of consumer flows on the queue. Over.
b) Maximum Consumers – Count Alert
Consumer count alert facility to alert on a low and high threshold to understand consumer pattern on the queue.
c) Maximum Message Size
The maximum message size allowed in the Queue, in bytes.
d) Maximum Delivered Unacknowledged Messages
The maximum number of messages delivered but not acknowledged per flow for the Queue.
e) Client Delivery Count
Enable or disable the ability for client applications to query the message delivery count of messages received from the Queue.