Service Bus 2.6.6配对命名空间启用Siphon

时间:2015-05-05 18:11:31

标签: c# azure azureservicebus servicebus syphon

如何使工作配对命名空间接收方将消息从积压队列移动到主队列。它似乎与发件人一起使用但接收器设置EnableSyphon = true似乎不起作用。我总能看到积压队列中的消息并且不断增长。我能找到的所有信息都是这个代码块,但是因为Service Bus 2.4 Messaging.Factory没有Open方法。

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

1 个答案:

答案 0 :(得分:1)

他们已经改变了如何将命名空间与更新版本配对。而是通过传入PairedNamespaceOptions实例从主消息传递工厂调用异步函数(PairNamespaceAsync)。请注意,返回的Task实际上是Promise类型,因此您不要在Task上调用Start(),因为它已经启动,只需调用Waiting()。

此外,您必须确保Secondary Namespace和MessagingFactory具有管理级安全性。简单地使用Publish对于MessagingFactory来说是不够的,它不会将消息发送回主队列/主题。

// assume members _messagingFactory, _secondaryNamespaceManager, _secondaryManagementMessagingFactory have been assigned.

try
{
    var pairedNamespaceOptions = new SendAvailabilityPairedNamespaceOptions(_secondaryNamespaceManager,
            _secondaryManagementMessagingFactory,
            1,
            TimeSpan.FromSeconds(30),
            true);
    _messagingFactory.PairNamespaceAsync(pairedNamespaceOptions).Wait();
}
catch (Exception ex)
{
    // logging or handle
}

一些有用的链接。