Service Bus Queue/Topic Partitioning Not Supported in BizTalk Services
June 21, 2014 5 Comments
The other day my esteemed colleague Bill Chesnut & I were configuring EDI agreements for a client using Microsoft Azure BizTalk Services (MABS). Because we were testing in an isolated development environment, we redirected the actual vendor routing to some Service Bus queues that we created so that we could inspect the messages.
The solution was already routing some messages to pre-existing queues (e.g. for suspended messages) and they were all working just fine. However all messages bound for the new queues we set up were failing with this error message in the tracking database:
This client is not supported for a partitioned entity. The client version should be greater or equal than version ‘2013-10’..58ca562e-49ef-4c92-823d-1a219c3f52bd_G8
This is odd… the new queues were created the same way as the existing ones were, using the “Quick Create” method in the Azure Management Portal. So what was different?
Thankfully it was Bill who remembered a relatively new feature in Service Bus – the addition of partitioned entities for increasing throughput by employing multiple message brokers and stores, introduced late last year. You can find out more details about how this works here.
So what does this have to do with our issue above? Well, two things actually:
|1.||The BizTalk Services client does not currently support interaction with queues or topics that employ partitioning.|
|2.||It appears that at some point very recently (i.e. between the time when we created the original queues a few weeks ago and when we created the new ones) the “Quick Create” method on the Azure Management portal has been modified so that it winds up invisibly setting the “Enable Partitions” property to “true”. Moreover, once the property is set, it cannot be changed – so the only alternative is to recreate the queue using the “Custom Create” mode.|
While Microsoft has hinted that they are planning some significant enhancements and improvements to MABS in the near future, it is unknown at this point whether the client will be updated to support partitioned entities. In the meantime, it is best to ensure that any destination queues or topics are created using the custom method:
You should then ensure that you disable partitioning on the 2nd page:
This will resolve the above error when the bridge attempts to deliver messages to your queue/topic.