It has been eight years since Microsoft first introduced this asynchronous message queue into SQL Server 2005 database. Before I am writing this blog entry, I checked SQL Saturday events all over the world for the most recent year. Not surprisingly, only four sessions were submitted and one was finally selected. It reminds me that, in a sense, this product is not popular among developers and enterprises sadly though I heard some good implementation as well before, for example, mySpace and Newegg implemented Service Broker for their e-business platforms, wondering whether they are still with Service Broker.
Am I a pioneer to use this product? Maybe. At the time I worked in Microsoft 7 years ago, I was tasked to implement the asynchronous logging function leveraging Service Broker for the project Vulcan. I struggled for less examples I can found online. Years after, I planted this technology in Starcite for implementing asynchronous aggregation for the order status change. It worked well finally after we evolved the implementation a couple of time (I hope our performance QA agrees with me at this point), wondering whether my baby is still there or not. Today, once again, someone asked me to share some experiences on Service Broker applications. I am glad to take this evangel task and check out some new updates in the latest version SQL Server 2012.
Comparing the tremendous changes in SQL 2012 BI and Always-on in Database engine, Service Broker in SQL2012 cannot be the super star but still gives us hopes.
First of all, messages can be sent to multiple target services (multicast).
This change is reflected in the syntax of “SEND”. SEND command can trig multiple conversions in one time as below.
SEND ON CONVERSATION (@dialog_handle1, @dialog_handle2, @dialog_handle3)
MESSAGE TYPE [//AllDBs/OrderMsg]
Next, queues expose the message queued time. In the system DMV, it exposes an aggregation showing how long a message has been in the queue.
Additionally, poison messages handling has been enhanced. The queue creation statement has the ability to turn off the poison messages handling.
Last but not least, high availability is redesigned to combine with Always-on group, which was supported by database mirroring.
Glad to see these changes in the newest version as I like this product because of a number of reasons but you need to catch up to be the super start in your family:). Next time, I will share a case study of Service Broker.