Messaging like Rabbits

I have been all kinds of excited about AMQP lately and yesterday’s news from David Ingham about AMQP on Service Bus got me pretty excited.  Obviously I’m always excited about BizTalk and my work lately has pushed me far heavier into the WCF-Adapters than I had previously gone (including using WCF 4.5 features from within BizTalk 2010). 

Eager to try some AMQP out and not willing to wait I decided I’d give RabbitMQ a try.  I knew they had a WCF binding for their implementation and decided it would probably be a good place to start.  This way I could placate my “open source” critics and also get some good AMQP fun going on Windows… quickly (I’m told AMQP works on Linux too). 

The setup was pretty easy for the server aspect, but the client part was not so much.  Leonid Ganeline’s awesome TechNet article on this helped me very much:

I knew I had to GAC the assemblies and register the binding in machine.config, but I couldn’t find the assemblies anywhere (neither could Leonid), so I ended up building them locally (though you can strong name assemblies after they’re compiled I instead just added a key and strong named them).  I also changed the target to .NET 4.0.  You need to compile RabbitMQ.Client and RabbitMQ.ServiceModel.

I followed a very similar pattern with a file drop that Leonid did and it worked great.  I’m playing around with the graphical tools (management console) for RabbitMQ and I still don’t really know what many of these defaults are, but I do plan to work on it a bit more. 


About danrosanova
I am a Principal Program Manager for Messaging at Microsoft and product owner for Azure Messaging: Service Bus, Relay, and Event Hubs. I have a long history in distributed computing on a variety of platforms and have focused on large scale messaging and middleware implementations from inception to implementation. I was a five time Microsoft MVP before joining Microsoft and author of the book Microsoft BizTalk Server 2010 Patterns.

3 Responses to Messaging like Rabbits

  1. Patrick says:

    Hi Dan.

    Thanks for the article. Can you tell me if you needed to do any extra setup on the BizTalk send port to get the message sent to the Q? I have followed Leos’ article as well and my messages get consumed but not sent to the Q. They do not error out or even register in the activity queries! Any help/advice would be most appreciated.



    • danrosanova says:

      Hello are you using the Qpid library for this? What AMQP platform are you sending to? Some of this has changed as AMQP 1.0 is now widely used. You can always turn on WCF Tracing and see if there is anything in there.


      • Patrick says:

        Hi Dan

        Thanks for the reply. I figured out what I was missing. I was creating a static queue and then trying to send to that without realising the recieve location creates a dynamic queue. It didn’t help that during my attempts to send a message I’d turned off the receive location (which meant the dynamic queue disappeared!). A lot of head scratching later, I realised what I needed to do.

        Anyway, thanks for taking the time to reply.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: