Служебная шина 2.6.6 Парное пространство имен включает перекачивание

Как заставить работать сторону получателя парного пространства имен для перемещения сообщений из невыполненной очереди в основную очередь. Кажется, это работает с отправителями, но с параметром EnableSyphon = true для получателей, похоже, не работает. Я всегда вижу сообщения в очереди невыполненных работ и растут. Вся информация, которую я смог найти, это этот Code Block, но поскольку Service Bus 2.4 Messaging.Factory не имеет Open Method.

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();

person Hermes    schedule 05.05.2015    source источник


Ответы (1)


Они изменили способ сопряжения пространства имен с более поздними версиями. Вместо этого вы вызываете асинхронную функцию (PairNamespaceAsync) из основной фабрики обмена сообщениями, передавая экземпляр PairedNamespaceOptions. Обратите внимание, что возвращенная задача на самом деле является типом Promise, поэтому вы не вызываете 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
}

Несколько полезных ссылок.

person Gregory A. Owen    schedule 08.05.2015