Microsoft Message Queuing

Microsoft Message Queuing or MSMQ is a message queue implementation developed by Microsoft and deployed in its Windows Server operating systems since Windows NT 4 and Windows 95. Windows Server 2016 and Windows 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 of Windows CE 3.0.[1]


MSMQ is essentially 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 with Visual Studio, both in the native pre-.NET incarnation (version 5 and 6), and in Visual 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. Microsoft Distributed 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:

  • TCP: 1801
  • RPC: 135, 2101*, 2103*, 2105*
  • UDP: 3527, 1801
  • * These port numbers may be incremented by 11 if the initial choice of RPC port is being used when Message Queuing initializes. Port 135 is queried to discover the 2xxx ports.[3]

Version references

  • Version 1.0 (May 1997). Supports Windows 95, Windows NT 4.0 SP3, Windows 98 and Windows Me.
  • Version 2.0, included with Windows 2000.
    • New features include:[4] Support for registering public message queues in Active Directory, 128-bit encryption and digital certificate support, full COM support for message properties (achieving functional parity with the Win32 API function calls, full DNS path name support, improved performance in multi-threaded applications.
  • Version 3.0, included with Windows XP (Professional, not Home Edition) and Windows Server 2003.
    • New features include:[5] Internet Messaging (referencing queues via HTTP, SOAP-formatted messages, MSMQ support for Internet Information Services), queue aliases, multicasting of messages, and additional support for programmatic maintenance and administration of queues and MSMQ itself.
  • Version 4.0, part of Windows Vista and Windows Server 2008.
    • New features include:[6] Subqueues,[7] improved support for "poison messages" (messages which continually fail to be processed correctly by the receiver), and support for transactional receives of messages from a remote queue.
  • Version 5.0, part of Windows 7 and Windows Server 2008 R2.
    • New features include:[8] support for Secure Hash Algorithm 2.0 (SHA2) and all advanced hash algorithms that are supported in Windows 2008 R2; by default, weaker hash algorithms are disabled.
  • Version 6.0, part of Windows 8 and Windows Server 2012.
  • Version 6.3, part of Windows 8.1 and Windows Server 2012 R2.


MSMQ is heavily used in various Windows Platform-based contact center applications which uses this service for internal notifications and services.

See also


  1. ^ "Microsoft Windows CE 3.0 Message Queuing Service". Microsoft Developer Network. Retrieved 2009-11-25.
  2. ^ InformationWeek News Connects The Business Technology Community. (2014-02-04). Retrieved on 2014-02-22. Archived April 10, 2008, at the Wayback Machine
  3. ^ TCP ports, UDP ports, and RPC ports that are used by Message Queuing. (2011-09-28). Retrieved on 2014-02-22.
  4. ^ "Cloud Administrator". Azure Cloud Administartor. Dayasagar Roy. Retrieved 2006-08-05.Template:Date=Nov 2018
  5. ^ "Cloud Administrator". Azure. Dayasagar Roy. Retrieved 2006-08-05.Template:Date=Nov 2018
  6. ^ "Cloud Administrator". Azure. Dayasagar Roy. Retrieved 2006-08-05.Template:Date=Nov 2018
  7. ^ Sub-queues in MSMQ 4.0
  8. ^ "Cloud Administartor". Azure. Dayasagar Roy. Retrieved 2006-08-05.
  9. ^ "ISO/IEC 19464:2014 - Information technology -- Advanced Message Queuing Protocol (AMQP) v1.0 specification". Retrieved 2017-11-07.

External links

Amazon Simple Queue Service

Amazon Simple Queue Service (Amazon SQS) is a distributed message queuing service introduced by in late 2004. It supports programmatic sending of messages via web service applications as a way to communicate over the Internet. SQS is intended to provide a highly scalable hosted message queue that resolves issues arising from the common producer-consumer problem or connectivity between producer and consumer.

Amazon SQS can be described as commoditization of the messaging service. Well-known examples of messaging service technologies include IBM WebSphere MQ and Microsoft Message Queuing. Unlike these technologies, users do not need to maintain their own server. Amazon does it for them and sells the SQS service at a per-use rate.

Dead letter queue

In message queueing the dead letter queue is a service implementation to store messages that meet one or more of the following criteria:

Message that is sent to a queue that does not exist.

Queue length limit exceeded.

Message length limit exceeded.

Message is rejected by another queue exchange.

Message reaches a threshold read counter number, because it is not consumed. Sometimes this is called a "back out queue".Dead letter queue storing of these messages allows developers to look for common patterns and potential software problems.Queueing systems that incorporate dead letter queues include Amazon Simple Queue Service , Apache ActiveMQ, HornetQ, Microsoft Message Queuing ,WebSphere MQ and Rabbit MQ .

Features new to Windows XP

Windows XP introduced many features not found in previous versions of Windows.

HTTP pipelining

HTTP pipelining is a technique in which multiple HTTP requests are sent on a single TCP connection without waiting for the corresponding responses.The technique was superseded by multiplexing via HTTP/2, which is supported by most modern browsers.As of 2018, HTTP pipelining is not enabled by default in modern browsers, due to several issues including buggy proxy servers and HOL blocking.

Java Message Service

The Java Message Service (JMS) API is a Java message-oriented middleware API for sending messages between two or more clients. It is an implementation to handle the producer–consumer problem. JMS is a part of the Java Platform, Enterprise Edition (Java EE), and was defined by a specification developed at Sun Microsystems, but which has since been guided by the Java Community Process. It is a messaging standard that allows application components based on Java EE to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.

List of TCP and UDP port numbers

This is a list of TCP and UDP port numbers used by protocols of the application layer of the Internet protocol suite for the establishment of host-to-host connectivity.

The Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) needed only one port for full-duplex, bidirectional traffic. The Stream Control Transmission Protocol (SCTP) and the Datagram Congestion Control Protocol (DCCP) also use port numbers. They usually use port numbers that match the services of the corresponding TCP or UDP implementation, if they exist.

The Internet Assigned Numbers Authority (IANA) is responsible for maintaining the official assignments of port numbers for specific uses. However, many unofficial uses of both well-known and registered port numbers occur in practice. Similarly many of the official assignments refer to protocols that were never or are no longer in common use. This article lists port numbers and their associated protocols that have experienced significant uptake.

List of application servers

This list compares the features and functionality of application servers, grouped by the hosting environment that is offered by that particular application server.

List of filename extensions (M–R)

This alphabetical list of filename extensions contains standard extensions associated with computer files.

Message queue

In computer science, message queues and mailboxes are software-engineering components used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

The message queue paradigm is a sibling of the publisher/subscriber pattern, and is typically one part of a larger message-oriented middleware system. Most messaging systems support both the publisher/subscriber and message queue models in their API, e.g. Java Message Service (JMS).

Microsoft Dynamics GP

Microsoft Dynamics GP is a mid-market business accounting software or ERP software package marketed in North and South America, UK and Ireland, the Middle East, Singapore, Australia and New Zealand. It is used in many additional countries with partner supported localizations. It uses either Microsoft SQL Server 2005, 2008, 2012, 2014 or 2016 to store data. It is one of four accounting packages acquired by Microsoft that now share the Microsoft Dynamics Business Solutions brand. Dynamics GP is written in a language called Dexterity.

The Dynamics GP product was originally developed by Great Plains Software, an independent company located in Fargo, North Dakota, which was run by Doug Burgum. Dynamics Release 1.0 was released in February 1993. It was one of the first accounting packages in the USA that was designed and written to be multi-user and to run under Windows as 32-bit software. In late 2000, Microsoft announced the purchase of Great Plains Software. This acquisition was completed in April 2001.

Microsoft Host Integration Server

Microsoft Host Integration Server (a.k.a. HIS) is a gateway application providing connectivity between Microsoft Windows networks and IBM mainframe and AS/400 systems. Support is provided for SNA, 3270 (standard and Telnet 3270 TN3270E), 5250 (standard and Telnet 5250), CICS, APPC, and other IBM protocols. Support is also provided for advanced integration with Windows networks and software, such as linking Microsoft Message Queuing applications to IBM WebSphere MQ, binding Microsoft DTC transactions with CICS, and cross-protocol access to DB2 databases on IBM platforms.

HIS is the successor to Microsoft SNA Server. SNA Server was released in 1994, and was one of the first add-on products available for the fledgling Windows NT.

Similar gateway products are NetWare for SAA (defunct, ran on Novell NetWare) and IBM Communications Manager/2 (defunct, ran on OS/2).

HIS has an active ecosystem of third party hardware (e.g. network adapters supporting ESCON and Twinax connectivity) and software.

Odyssey Software (Mobile Device Management)

Odyssey Software provides mobile device management and software development tools to enterprise companies either directly (primarily through its Athena product) or through partner solutions. Its technology allows companies to manage multiple mobile operating systems at a detailed level, including functions such as inventory collection, software management, remote control, and device configuration.

Poison message

A poison message refers to a client-server model issue, where a client machine tries to send a message to the server, and fails too many times (the actual amount of "too many" is variable).

The behavior toward Poison messages varies - they are either discarded, create a service request event or initiate other failure indication. The term is used mainly in Microsoft related frameworks like SQL or Windows Communication Foundation (WCF).

Technical features new to Windows Vista

Windows Vista (formerly codenamed Windows "Longhorn") has many significant new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.

In addition to the new user interface, security capabilities, and developer technologies, several major components of the core operating system were redesigned, most notably the audio, print, display, and networking subsystems; while the results of this work will be visible to software developers, end-users will only see what appear to be evolutionary changes in the user interface.

As part of the redesign of the networking architecture, IPv6 has been incorporated into the operating system, and a number of performance improvements have been introduced, such as TCP window scaling. Prior versions of Windows typically needed third-party wireless networking software to work properly; this is no longer the case with Windows Vista, as it includes comprehensive wireless networking support.

For graphics, Windows Vista introduces a new as well as major revisions to Direct3D. The new display driver model facilitates the new Desktop Window Manager, which provides the tearing-free desktop and special effects that are the cornerstones of the Windows Aero graphical user interface. The new display driver model is also able to offload rudimentary tasks to the GPU, allow users to install drivers without requiring a system reboot, and seamlessly recover from rare driver errors due to illegal application behavior.

At the core of the operating system, many improvements have been made to the memory manager, process scheduler, heap manager, and I/O scheduler. A Kernel Transaction Manager has been implemented that can be used by data persistence services to enable atomic transactions. The service is being used to give applications the ability to work with the file system and registry using atomic transaction operations.

Unisys OS 2200 distributed processing

OS 2200 supports all commonly used, and many not so commonly used, distributed processing protocols, APIs, and development technology.

The X/Open Distributed Transaction Processing model and standards are the basis for much of the OS 2200 capability. Full support for the X/Open XA APIs including two-phase commit are built into transaction middleware, the database managers, and even clustering.

The J2EE model is also fully supported. It uses the XA capabilities of the system but provides the J2EE APIs and protocols.

IBM WebSphere MQ (AKA MQSeries), MSMQ, and others are all fully integrated into the system taking advantage of the XA and integrated recovery facilities.

Windows NT 4.0

Windows NT 4.0 is an operating system that is part of Microsoft's Windows NT family of operating systems. It was released to manufacturing on July 31, 1996. It was Microsoft's primary business-oriented operating system until the introduction of Windows 2000. Workstation, server and embedded editions were sold; all editions feature a graphical user interface similar to that of Windows 95.

Microsoft ended mainstream support for Windows NT 4.0 Workstation on June 30, 2002 and extended support on June 30, 2004, while Windows NT 4.0 Server mainstream support ended on December 31, 2002 and extended support on December 31, 2004. Both editions were succeeded by Windows 2000 Professional and Server, respectively.

Windows Server 2008

Windows Server 2008 is a server operating system produced by Microsoft. It was released to manufacturing on February 4, 2008, and reached general availability on February 27, 2008. It is the successor of Windows Server 2003, released nearly five years earlier.

File systems
Spun off to
Microsoft Store

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.