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.
This was first published in December 2005