Guaranteed Messaging Configuration
Guaranteed Messaging can be used to ensure the delivery of a message between two applications even in cases where the receiving application is off line, or there is a failure of a piece of network equipment. As well, those messages are delivered in the order they were published.
To support Guaranteed Messaging, a Solace PubSub+ event broker must have Guaranteed Messaging and message spooling enabled. By default, these aren't enabled for appliances, but are enabled for software event brokers. An appliance must also have an Assured Delivery Blade (ADB) and a Host Bus Adapter (HBA) installed.
Feature Interoperability Limitations
Observe the following limitations:
- Topic endpoint subscriptions follow the “deliver always” paradigm in the Deliver-To-One messaging feature.
- With the exception of message spool-specific details, the
show
User EXEC commands do not make a distinction between durable and non-durable destinations. That is, the same show commands and options exists for both durable and non-durable destinations. - Guaranteed temporary destinations and their content survive a redundancy switch provided that the bind from the client occurs within the switchover time.
- To route Guaranteed messages between PubSub+ event brokers, you must use DMR (dynamic message routing). The MNR (multi‑node routing) feature is for use with Direct messages only.
Functional Parameters to Consider When Provisioning Endpoints
Functional parameters to consider when provisioning queues and topic endpoints on Solace PubSub+ event brokers include:
- technology used by connected client. For example:
- Solace enterprise Messaging API
- Solace Web messaging API
- non-Solace technology: OpenMAMA API, REST messaging, MQTT
- endpoint durability: durable or non-durable
- message delivery type: Guaranteed or Direct
- message type: persistent, non-persistent, or Direct
The following table lists the supported queue and topic endpoint functionality. When created, the associated client durability and message delivery attributes for queues and topic endpoints are assigned.
Functionality | Durable Client | Non-Durable Guaranteed Client | Non-Durable Direct Client |
---|---|---|---|
Destination Types |
queue, topic endpoint |
temporary queue, topic/temporary topic |
temporary queue, topic/temporary topic |
Endpoints Survive Client Disconnect? |
Yes |
Yes, but only within a certain period of time (a short delay for client disconnect/connect case) |
No |
Endpoints Survive Redundancy Switchover? |
Yes |
Yes, but only in the case of a client reconnect within a certain period of time |
No |
Requires physical ADB? |
Yes, if endpoint is on an appliance |
Yes, if endpoint is on an appliance |
No |
Guaranteed Message Ordering? |
Yes, with the exception of non‑exclusive queues, which can shuffle message order for the sake of load balancing. For partitioned queues, message ordering is guaranteed within each partition, but not between partitions. |
Yes |
No |
Guaranteed Message Expiry (TTL)? |
Yes |
Yes |
No |
Messages Survive Client Disconnects? |
Yes |
Yes, but only within a certain period of time (a short delay for client disconnect/connect case) |
No |
Messages Survive Redundancy Switchover? |
Yes |
Yes, but only within a certain period of time (a short delay for client disconnect/connect case) |
No |
Client Access Type |
Exclusive queue, non-exclusive queue, one-and-only-one durable topic endpoint |
At most one client |
At most one client |