Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Message Queuing (MSMQ) is a communications service that asynchronously and reliably passes messages between client applications that run on different hosts. In MSMQ, clients send application messages to a queue and they can also consume application messages from a queue. The queue provides persistence for messages, which enables them to survive across application restarts, and allows the sending and receiving of applications to operate asynchronously.
Queues are typically hosted by a communications service called a queue manager (QM). Implementing the queue manager as a separate service allows client applications to exchange queued messages asynchronously and eliminates the need for client applications to execute at the same time.
MSMQ is designed to send messages asynchronously to computers that are temporarily unavailable. When sending a message, the QM indicates to the client application that the sending operation has succeeded as soon as the message is created with valid properties and placed in an outgoing queue. The message remains in the outgoing queue until it is delivered to its destination or until the message expires. Note that the sending operation does not immediately deliver the message. It instead stores the message in a queue to be delivered asynchronously by the QM.
The QM handles message delivery by continually checking for messages in all the local outgoing queues. When it finds messages, the QM attempts to transmit the messages to their destinations. If the message does not reach its destination queue or if it is discarded before a receiving application retrieves it, the QM on the sending side does not return any information to the sending application. Applications can obtain information about message delivery from acknowledgment messages that the destination host sends back and also from the dead-letter queues and queue journals for messages sent. For more information about MSMQ architecture, see [MS-MQOD].