Message Delivery Methods
Updated: June 25, 2007
Applies To: Windows Server 2008
Two basic message delivery methods are supported: express and recoverable. The choice between the two is essentially a choice between better performance with minimal resource use (express delivery), and reliability and recovery after a failure (recoverable delivery). The message delivery method is specified programmatically by the sending application. Recoverable messaging can also be further differentiated into transactional and nontransactional messaging.
Using express messaging means that messages are stored in memory during routing and delivery, providing extremely fast performance but no recoverability if any computer that the message passes through fails. Notably, express messages are lost whenever the Message Queuing service is stopped.
Too many express messages accumulating in RAM may cause paging out to disk, leading to performance degradation. Thus, it is not recommended to store more express messages than physical memory can hold.
Express messages can, however, survive a network failure. For example, if a Message Queuing application sends express messages through a Message Queuing server and the network link between the Message Queuing server and the destination computer fails, the Message Queuing server continues to store the messages in memory. However, if the Message Queuing server fails before the network link is restored, the express messages are lost.
|If you are running Message Queuing in a server cluster, express messages will be lost during a failover from one node to another.|
Using recoverable messaging means that messages are written to disk during routing and delivery, making delivery somewhat slower than the use of express messaging, but ideal when failures cannot be tolerated or when computers shut down while messages remain in queues (such as for mobile clients on laptop computers). If a computer fails or is shut down while sending a message, the message is stored on disk. When the computer is restarted and the Message Queuing service restarts, the sending process is automatically resumed.
All recoverable messages are stored on disks in memory-mapped files. Performance gains can be realized by employing several physical disks to store recoverable messages. For more information, see "Disk considerations" in Planning for Message Queuing.