2015-05-05 71 views
1

如何使工作配對名稱空間接收方將消息從積壓隊列移動到主隊列。它似乎與發件人一起工作,但接收器設置EnableSyphon = true似乎不起作用。我總能看到積壓隊列中的消息並不斷增長。我可以找到的所有信息都是這個代碼塊,但是因爲Service Bus 2.4 Messaging.Factory沒有打開方法。服務總線2.6.6配對命名空間啓用虹吸

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

它們改變了如何將命名空間與更新的版本配對。相反,您可以通過傳入PairedNamespaceOptions實例來從主消息傳遞工廠調用異步函數(PairNamespaceAsync)。請注意,返回的任務實際上是一個Promise類型,因此您不在Task上調用Start(),因爲它已經啓動,只需調用Waiting()。

此外,您必須確保輔助命名空間和MessagingFactory具有管理級別的安全性。只有發佈不足以支持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 
} 

一些有用的鏈接。

相關問題