MSMQ Queues

MSMQ queues are all based on the same model. However, who creates the queue, who sends messages to the queue, and how the messages are used vary between the different types of queues.

Queues can be created by applications (message, administration, and response queues) or by MSMQ (journal, dead letter, and report queues). Queues created by applications are application queues,and those created by MSMQ are system queues.

Queues can receive their messages from applications (message and response queues) or from MSMQ (administration, journal, dead letter, and report queues).

Regardless of who creates the queue, who sends messages to the queue, or how messages are used by an application, the method for sending and receiving messages is the same. An application uses the same method of sending messages to message and response queues and uses the same method of reading messages from message, response, administration, journal, dead letter, and report queues.

The following table lists the different kinds of queues, whether they are application or system queues, and provides a brief description of how they can be used by your applications.

Queue Queue Type Description
Message queues Application Application-generated messages can be sent to and read from these queues. They can be public (they are defined in the MSMQ information store and can be located using MSMQ Lookup functions) or private (they are defined on the local machine and cannot be located using MSMQ Lookup functions).
Administration queues Application Local queue used to store MSMQ-generated positive and negative acknowledgments when sending messages.
Response queues Application Used to return application-generated response messages from the application reading the messages in a queue.
Journal queues System Used to store copies of application-generated messages. There are two types of journal queues: machine journals and queue journals.
Dead Letter queues System Used to store application-generated messages that cannot be delivered. There are two dead letter queues: one for transaction messages and the other for non-transaction messages.
Report queues System Used to track the progress of your messages as they move through your enterprise. Report queues receive MSMQ-generated report messages.