2.1.2.1 Message Delivery Assurance

The MSMQ protocols provide the following levels of message delivery assurance:

Best-effort Express Delivery: Provides best-effort, at most once express delivery assurance through express messages that are volatile and therefore can be lost in transit during transient unavailability or failure of the Message Queuing components or of the underlying network. These messages do not persist through system restarts.

Best-effort Delivery: Provides best-effort, at most once delivery assurance through recoverable messages. These messages are saved by the queue manager and therefore persist through system restarts. These messages can be lost in transit during transient unavailability or failure of the underlying network.

Exactly-once Delivery: Provides exactly-once delivery assurance for messages that are sent to transactional queues. A source applications sends one or more messages to a transactional queue as part of a transaction. Subject to the outcome of the transaction, the queue manager accepts and persists these messages. Subsequently, the messages are transferred between queue managers for placement in the destination queue. A destination application receives and processes messages as part of a transaction. Whether the messages are treated as consumed depends on the outcome of the transaction. A Message Queuing System is required to receive and deliver these messages only in the scope of a transaction.