SALES: 1-800-867-1380

What's New in the Service Bus 2.1 Release (May 2013)

Updated: August 18, 2014

The Microsoft Azure Service Bus May 2013 release contains a number of new features and capabilities. This release is not linked to an update of the Azure SDK, but it contains a new version of Microsoft.ServiceBus.dll (version 2.1). You can obtain the new version of the assembly by downloading the latest NuGet package here.

This topic summarizes the new features and contains links to more information.

This release of Microsoft Azure Service Bus includes support for the Advanced Message Queuing Protocol (AMQP) version 1.0, which is transitioning to General Availability (GA) from its preview release state. AMQP is an efficient, reliable, wire-level messaging protocol that can be used to build robust, cross-platform messaging applications.

For more information about AMQP, see:

Sometimes, due to short-lived or transient outages, when a Service Bus service namespace becomes unavailable you are unable to send or receive messages to the namespace hosting the queue, topic, or subscription. Previously, the typical workaround was to set up a separate namespace that can act as a backup, then implement extensive failover and retry logic.

For more robust high availability, Service Bus now supports Paired Namespaces, which enables you to connect two namespaces. When you activate the secondary namespace, messages are stored in the secondary queue for delivery to the primary queue at a later time. If the primary container (namespace) becomes unavailable for some reason, automatic failover enables the messages in the secondary queue to be delivered to the primary queue. This feature is called Send Availability, which enables a single sender to continue to process messages in the event that one of the new namespaces encounters a messaging entity that becomes unavailable. When the primary entity is unavailable, messages are sent to the secondary entity. Set the Microsoft.ServiceBus.Messaging.SendAvailabilityPairedNamespaceOptions.EnableSyphon property to true on cloud service worker roles (backend processing), not on Web sites and Web roles (frontend processing).

Note that syphons from secondary to primary do not preserve message ordering.

For example:

factory = MessagingFactory.Create(SB_Primary_NS_Address);
factory.PairNamespace(new SendAvailabilityPairedNamespaceOptions
        EnableSyphon = true,
        TransferQueueCount = 10,
        MessagingFactory = paired-NS_factory,
        NamespaceManager = paired-NS_manager

For more information, see

The Client-side Retry Policy feature enables you to set a retry policy on transient message delivery errors. The library continues the retry until the limit set in the OperationTimeout property is reached. You can also disable the retry; because you might see more latency when using this feature, to restore the previous behavior, disable it. For example:

MessagingFactory factory = MessagingFactory.Create();
factory.RetryPolicy = RetryExponential.Default; // retry on transient errors until the OperationTimeout is reached
factory.RetryPolicy = RetryPolicy.NoRetry; // disables retry for tranisent errors

For more information, see

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft