Microsoft Message Queuing (MSMQ) is a component of the Windows operating system that allows cooperating applications to send and receive messages to each other, even if the intended recipient application is not running or the computer on which the sender or recipient application is running is disconnected from the network. Messages are stored and forwarded by MSMQ until they reach the destination queue. Later, when a recipient application runs, it can retrieve the messages from the queue. MSMQ decouples sender and recipient applications so they do not need to run at the same time. Message Queuing provides built-in enhanced security, transaction support, and other features.
MSMQ is useful when custom applications need to communicate reliably across potentially unreliable or occasionally connected networks. MSMQ is also useful as a persistent storage mechanism for a list of items. For example, a server-based application could use MSMQ to store queued orders that would be submitted as a batch to an order-processing system at the end of the day. MSMQ is also the underpinning infrastructure for reliable messaging in Windows Communication Foundation, first available in Windows Vista, the next version of the client operating system.
Message Queuing can be accessed and used by any Windows application, including Windows Forms applications that present graphical user interfaces (GUIs), smart client applications built on top of the Microsoft Office System, server-side applications running within ASP.NET, Windows Services, and others.
MSMQ is available as a component of Windows 2000 and later. Because Message Queuing is a component of Windows, its use is covered by the Windows license. If you have a valid license to use Windows, then you can use MSMQ. Refer to the MSDN article Installing Message Queuing (MSMQ) for details of installing MSMQ on your operating system.