Message queues and topic endpoints can optionally support priority message delivery. When you enable an endpoint to respect message priority, the priority field in messages from publishers are respected for all guaranteed and promoted direct messages. In other words, the queue or topic endpoint delivers queued messages in priority order; meaning that all messages of a higher priority are delivered before any messages of a lower priority.
Solace PubSub+ event brokers support ten levels of priority from 0 (lowest) to 9 (highest). If the priority field in the received message is greater than 9, then the message is treated as priority 9. Messages that do not have a priority field are treated as priority 4.
Upon upgrade from a load that doesn't support message priority to a load that does, all existing messages for each queue or topic endpoint are treated as having the highest priority value, priority 9. Message priority is preserved on subsequent upgrades.
Considerations when enabling an endpoint to respect message priority
You should consider the following when deciding whether to enable an endpoint to respect message priority:
- When you enable an endpoint to respect message priority, high priority message latency is improved while delivering spooled messages.
- Enforcing message priority increases the chance that duplicate messages will be delivered to a consuming client after it recovers from a connection failure.
- Although message priority is maintained between replication sites and respected after a fail-over, enforcement of message priority on replication queues and topics is always disabled. In other words, replication bridge links do not respect the priority of replicated messages.
- When the event broker is streaming messages (messages are consumed faster than they are produced), each message is delivered as it's received, which may not be in priority order.
- Dead Message Queues can be configured to respect message priority.
- Last Value Queues always store the last message received, regardless of the priority value of the message.
- Message priority is not respected for queue browsers. Messages are delivered to browsers in the order in which they were published.
- Message priority is not respected for bridges. However, the priority information is maintained. Messages are delivered by the bridge in the order in which they were published.
- Messages consumed in a transaction respect message priority.