NServiceBus: PubSub с распространителем на компьютере, отличном от издателя и подписчика - PullRequest
1 голос
/ 13 июня 2011

У меня есть образец PubSub, работающий с дистрибьютором посередине - все они на моей локальной машине. Сейчас я пытаюсь перевести дистрибьютора на другую машину и у меня возникают проблемы. Кажется, подписчики регистрируются у издателя через распространителя (я добавил в журнал «Заявитель», который сообщает мне количество подписчиков и дает правильное значение), но подписчик просто не получает никаких опубликованные события. Что я делаю неправильно? Есть ли какие-то разрешения, которые мне нужно предоставить для разных очередей? Вот мои конфигурационные файлы:

Издатель

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
  </configSections>

  <MsmqTransportConfig InputQueue="MyPublisherInputQueue" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />

  <UnicastBusConfig DistributorControlAddress=""
    DistributorDataAddress=""
    ForwardReceivedMessagesTo="">
    <MessageEndpointMappings>
        <add Messages="MyMessages" Endpoint="distributorDataBus@rosmi" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

</configuration>

Абонентская

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
  </configSections>

 <MsmqTransportConfig
    InputQueue="Subscriber1InputQueue_1"  
    ErrorQueue="error"
    NumberOfWorkerThreads="1"
    MaxRetries="5"
  />

  <UnicastBusConfig  DistributorControlAddress="distributorControlBus@rosmi" DistributorDataAddress="distributorDataBus@rosmi">
    <MessageEndpointMappings>
      <add Messages="MyMessages" Endpoint="MyPublisherInputQueue" /> <!-- I've also tried this with MyPublisherInputQueue@rrajagop -->
    </MessageEndpointMappings>
  </UnicastBusConfig>

</configuration>

Дистрибьютор

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="NumberOfWorkerThreads" value="1"/>

    <add key="DataInputQueue" value="distributorDataBus"/>
    <add key="ControlInputQueue" value="distributorControlBus"/>
    <add key="ErrorQueue" value="error"/>
    <add key="StorageQueue" value="distributorStorage"/>

    <add key="NameSpace" value="http://www.UdiDahan.com"/> 
    <!-- relevant for a Serialization of "interfaces" or "xml" -->

    <add key="Serialization" value="xml"/>
    <!-- can be either "xml", or "binary" -->
  </appSettings>
</configuration>

В приведенном выше конфиге распространитель работает на компьютере с именем «rosmi», а издатель и подписчик - на «rrajagop».

1 Ответ

0 голосов
/ 04 августа 2011

Выяснил проблему: проблема возникла из-за того, что nslookup имени машины указывал на неправильный IP-адрес - это было из-за того, что DHCP выделял другой IP-адрес для машины, но записи dns требовали времени для обновления.

...