This articlemay rely excessively on sourcestoo closely associated with the subject, potentially preventing the article from beingverifiable andneutral. Please helpimprove it by replacing them with more appropriatecitations toreliable, independent sources.(July 2013) (Learn how and when to remove this message) |
Microsoft Message Queuing (MSMQ) is amessage queue implementation developed byMicrosoft and deployed in itsWindows Server operating systems sinceWindows NT 4 andWindows 95.Windows Server 2016 andWindows 10 also includes this component. In addition to its mainstream server platform support, MSMQ has been incorporated into Microsoft Embedded platforms since 1999 and the release ofWindows CE 3.0.[1]
MSMQ is a messaging protocol that allows applications running on separate servers/processes to communicate in a failsafe manner. A queue is a temporary storage location from which messages can be sent and received reliably, as and when conditions permit. This enables communication across networks and between computers, running Windows, which may not always be connected. By contrast,sockets and other network protocols assume that direct connections always exist.
MSMQ has been available to developers on Microsoft platforms since 1997,[2] and has commonly been used in enterprise software built withVisual Studio, both in the native pre-.NET incarnation (version 5 and 6), and inVisual Studio .NET. Microsoft also has incorporated MSMQ in its messaging technology framework,Windows Communication Foundation (WCF). Under WCF, MSMQ can be used for providing secure, reliable transport with a unified programming model compatible with other communications standards.
MSMQ is responsible for reliably delivering messages between applications inside and outside the enterprise. MSMQ ensures reliable delivery by placing messages that fail to reach their intended destination in a queue and then resending them once the destination is reachable. It also supports security and priority based messaging.Dead letter queues can be created for looking at messages which timed out or failed for other reasons.
MSMQ supports both durable and non-durable messaging to make a trade off between performance or consistency by writing messages to disk or only in RAM. Non-durable messaging can only be achieved by sending express messages via non-transactional queues.
MSMQ also supports transactions. It permits multiple operations on multiple queues, with all of the operations wrapped in a single transaction, thus ensuring that either all or none of the operations will take effect. MicrosoftDistributed Transaction Coordinator (MSDTC) supports transactional access to MSMQ and other resources to achieve transactional exact once processing.
The following ports are used for Microsoft Message Queuing operations:
MSMQ is heavily used in various Windows Platform-based contact center applications which uses this service for internal notifications and services.[citation needed]