A reliable messaging system guarantees that messages are delivered to their intended recipients in the correct order. JMS guaranteed messaging relies on three mechanisms: message autonomy, store and forward delivery for persistent messages, and message acknowledgments.
Fuse ESB Enterprise's messaging service provides additional features for ensuring reliable messaging, including recovery of failed messages.
Provides a mechanism for modifying the maximum number of times and the frequency at which the broker attempts to redeliver expired and undeliverable messages.
You can tune the client's redelivery policy by editing its connection in the broker's
configuration file (activemq.xml).
For details, see ActiveMQ in Action (Snyder, Bosanac, and Davies).
When a message cannot be delivered to its destination, the broker sends it to the dead
letter queue, ActiveMQ.DLQ. When a message is sent to
the dead letter queue, an advisory message is sent to the topic
ActiveMQ.Advisory.MessageDLQd.*. (See Advisory messages.
Messages held in the dead letter queue can be consumed or reviewed by an administrator at a later time. Reviewing the contents of the dead letter queue helps to debug delivery issues and to prevent messages loss.
For details, see ActiveMQ in Action (Snyder, Bosanac, and Davies).
This feature preserves the state of a registered durable subscription. A subscriber registers a durable subscription with a topic. A durable subscription instructs the broker to store all messages arriving at the topic while the durable subscriber is disconnected from it. The broker delivers all accumulated messages that have not expired to the durable subscriber when it reconnects to the topic. If the durable subscriber unsubscribes from the topic without first reconnecting, the broker discards all of the subscriber's accumulated messages.
For details, see ActiveMQ in Action (Snyder, Bosanac, and Davies).
Provide a mechanism for ensuring that messages are processed in the correct order from a queue connected to multiple receivers.
The broker always dispatches messages in FIFO order. Because the client application has no control over the scheduling of messages, queues with multiple receivers may not consume messages in the same order they were dispatched, even when all consumers use the same connection. The exclusive consumers feature directs the broker to select one of a queue's multiple consumers to receive all messages from the queue. If that consumer stops or fails, the broker selects another of the queue's consumers to take its place.
For details, see ActiveMQ in Action (Snyder, Bosanac, and Davies).
Provide a mechanism to group messages for delivery to a single consumer.
This feature enables multiple consumers on the same queue to process, in FIFO order,
messages tagged with the same JMSXGroupID. It also facilitates concurrency as
multiple consumers can parallel process different message groups, each identified by a
unique JMSXGroupID.
The producer assigns a message to a group by setting the JMSXGroupID
property in the message header. The broker dispatches all messages tagged with the same
JMSXGroupID value to a single consumer. If that consumer becomes unavailable,
the broker dispatches subsequent messages in the group to another consumer.
For details, see ActiveMQ in Action (Snyder, Bosanac, and Davies).
Applies only to topics. This feature provides a caching mechanism that improves reliability without the overhead of persistent messaging. It enables consumers to retrieve nonpersistent messages that were sent before the consumer started or that went undelivered because the consumer had to restart.
The broker can cache a configurable number of nonpersistent messages for topic destinations.
For details, see ActiveMQ in Action (Snyder, Bosanac, and Davies).








