Message Queuing Messages
Messages are units of information that are sent to and retrieved from destination queues distributed on various computers. Message Queuing uses destination queues to store messages so that the application sending the messages and the application retrieving the message do not have to be running at the same time.
Logically speaking, a message can be considered an object that has a set of properties and contents. The properties specify how Message Queuing delivers the message, and the contents are processed by the receiving application. Physically speaking, a message can be considered a packet of data conforming to a specific protocol that contains information in well defined fields.
The information within the message is stored in different message properties. For example, even the contents of the message (as described above) are stored in the body property of the message. Other message properties include the message identifier (set by Message Queuing), the message label (provided by the sending application, and many more.
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. These memory-mapped files are stored in the MSMQ\Storage folder on the computer where the queue resides.
Message Queuing provides a message identifier for every message that is sent, including both messages sent by the sending application and system-generated messages sent by Message Queuing. For the most part, each message identifier is unique and can be used to identify the message. However, when a message is sent to multiple destinations using distribution lists or multiple-element format names (distribution lists and multiple-element format names are introduced in MSMQ 3.0), each copy of the message has the same message identifier. In this case, the application reading the message must look at both the message identifier and the destination of the message to identify the message.
For information on
Sending messages express or making them recoverable
Sending a single message to multiple queues
Sending and retrieving messages within a transaction or without transactions
Sending messages directly to their destination queue
Sending HTTP formatted messages over the Internet
Messages that can be sent over HTTP
Sending and retrieving information in the message body
Acknowledgment and response messages
Options when sending messages
Retrieving and peeking at messages in a queue and requesting that copies be placed in the queue journal
Setting the expiration time of a message
Tracking how messages reach the destination queue