Relationship between SQL Service Broker and Microsoft Message Queuing

SQL Server 2005 expert Adam Machanic discusses the relationship between SQL Server Broker and Microsoft Message Queuing.

What is the relationship between SQL Service Broker (SSB) and Microsoft Message Queuing (MSMQ)?
SQL Server 2005 introduces a native, queued messaging system, SQL Service Broker. By using Service Broker, developers will be able to create asynchronous and pipelined database applications, without relying on application code for queuing capabilities.

Developers should understand that SQL Service Broker and Microsoft Message Queuing are very different technologies. Although they are both queuing systems, MSMQ is not natively supported in SQL Server, but is instead implemented using .NET or COM code. MSMQ can send and receive messages between a variety of application platforms.

SSB queues, on the other hand, can be implemented entirely in T-SQL, without the need for external application code. Service Broker, unlike MSMQ, can only send messages to and receive messages from SQL Server—either local or remote databases.

Each of these technologies is useful for different purposes, but perhaps the most important distinction is that SQL Service Broker allows data-driven queues to be implemented without the use of external application code—keeping data logic close to the data, where it belongs.

SQL Server 2005 developers that need to access MSMQ from within SQL Server can use CLR routines that make use of the System.Messaging namespace.

Do you have comments on this Ask the Expert Q&A? Let us know.

Dig Deeper on Microsoft SQL Server 2005