Overview• Message Queuing is a message infrastructure and a development platform for creating distributed, loosely- coupled messaging applications for the Microsoft® Windows® operating system.• Message Queuing applications can use the Message Queuing infrastructure to communicate across heterogeneous networks and with computers that may be offline.• Message Queuing provides guaranteed message delivery, efficient routing, security, transaction support, and priority-based messaging.
Aplications• Message Queuing applications can be divided into two categories: – Sending applications, which send messages to queues. – Receiving applications, which read messages in queues and can remove messages from queues.
Queues• Queues are logical containers that Message Queuing uses to store and later forward messages, providing the bases for the loosely coupled aspects of Message Queuing.• Applications can create queues, locate existing queues, open queues, send messages to queues, read messages in queues, set and retrieve queue properties, and set and retrieve the security descriptors of queues.
Messages• Messages are units of information that are sent to and retrieved from destination queues distributed on various computers.• Logically speaking, a message can be considered an object that has a set of properties and content.
Messages CosiderationsMaximum Message Size – Messages can have no more than 4 MB of data. This restriction is due to the memory mapped files used by Message Queuing to store the message data.Message Identifier – Message Queuing provides a message identifier for every message that is sent, including both messages sent by the sending application.
Sending MessagesIn addition to the basic asynchronous operation, you can addfunctionality to your send operation by using the following: – Message timers to control how long your messages stay in the system – Computer journals to store a copy of each message that you send – Administration queues for Message Queuing-generated acknowledgment messages – Response queues for application-defined response messages – Report queues for storing messages that trace the progress of a message
Reading MessagesThe receiving application can read the messages in aqueue either synchronously or asynchronously. Messagescan be removed from the queue when they are read, orthey can be left in the queue. Additionally, a receivingapplication can read all its messages from within atransaction.Note: Messages cannot be read from a queue on a computer that does not have a direct connection. Opening a queue with receive or peek accessrequires a direct connection to the computer where the queue is resides.
Computer PropertiesThe properties of a Message Queuing computer contain thesettings that define the messaging behavior of the computer.Computer properties consist of two groups of properties:queue manager and private computer properties.• Retrieving Computer Properties – Unlike queue and message properties, computer properties cannot be set programmatically.• Computer Property Structures – Message Queuing uses an MQQMPROPS structure to define queue manager properties and a MQPRIVATEPROPS structure to define private computer properties
TriggersMessage Queuing triggers allow you to associate the arrival ofincoming messages at a destination queue with thefunctionality of one or more COM components or stand-aloneexecutable programs.
TransactionsWhen more than one message is sent within atransaction, Message Queuing uses an internal exactly-once-delivery (EOD) protocol to guarantee that the messages willbe delivered exactly once and in order.
Application ModelsMessage Queuing applications can run in manydifferent network scenarios. – Applications operating in a workgroup environment – Applications operating offline – pplications that must send and receive messages between enterprises
COM Support• Message Queuing provides a set of COM objects for developing Message Queuing applications using COM development tools.• The Message Queuing COM objects provide the most common Message Queuing API functionalities needed for developing Message Queuing applications.