Конфигурация NServiceBus и WebSphere mq

Я пытаюсь настроить свой проект NServiceBus для использования WebSphere mq. Я искал все остальные в Интернете и не нашел ни одного актуального примера. в соответствии с этим постом есть DLL, которая предоставляет API для конфигурации WMQ. Однако их пример работает с действительно старой версией NServiceBus и не совместим с текущей версией (4.3.1). Единственное руководство, содержащее несколько реальных примеров, - это руководство, предназначенное для PubSuB, а не для простой конфигурации клиент-сервер. Может кто-нибудь направить меня к последнему примеру, который описывает, как я должен настроить мой проект NSB для использования WMQ.

Спасибо!

3 ответа

Решение

Я перенес NServiceBus.WebSphereMQ в версию 5 NServiceBus. Используя решение для POC, реализация не очень элегантна, и поэтому у меня не хватило смелости опубликовать его на Git Hub:-D.

В POC я создал две конечные точки, используя транспорт NServiceBus.WebSphereMQ.

Конфигурация довольно проста.

Внутри файла конфигурации каждой конечной точки (app.config) я указал следующие параметры:

 <configSections>
    ...
    <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
    <section name="AuditConfig" type="NServiceBus.Config.AuditConfig, NServiceBus.Core" />
    ...
  </configSections>
  <AuditConfig QueueName="audit" />
  <MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
    ...
  <connectionStrings>
    <add name="NServiceBus/Transport" connectionString="hostname=localhost;port=1414;queueManager=NEOS;channel=NEOS;" />
  </connectionStrings>

Важно обратить внимание на строку подключения. Имя QueueManager и название канала являются очень важной информацией и будут указаны позже. Используя ServiceMatrix для VisualStudio 2013, я автоматически сгенерировал файл EndpointConfig, указав логику транспорта внутри:

 public partial class EndpointConfig : IConfigureThisEndpoint, AsA_Server
 {
     public void Customize(BusConfiguration configuration)
     {
         configuration.UseSerialization<JsonSerializer>();

         configuration.UsePersistence<InMemoryPersistence>();

         configuration.UseTransport<WebSphereMQ>();
     }
 }

Это все сторона кода.

Чтобы проверить связь с помощью MQ, я скачал WebSphere MQ Advanced с веб-сайта IBM (это бесплатно): http://www-01.ibm.com/support/docview.wss?uid=swg24032734 Если вы устанавливаете версию 7.5, не забудьте установить рекомендуемые исправления!

Прежде всего вы должны настроить QueueManager. Для этого я использовал инструмент WebSphere MQ Explorer, как показано ниже:

введите описание изображения здесь

Затем вы должны создать канал соединения с сервером:

введите описание изображения здесь

Для использования канала необходимо предоставить разрешение на грант

введите описание изображения здесь

На этом этапе каждая конечная точка может автоматически создавать все очереди при первом запуске. Работает отлично!

введите описание изображения здесь

Я надеюсь, что был полезен

Мы работали над транспортом WebSphereMQ для v4, см. https://github.com/Particular/NServiceBus.WebSphereMQ

Вы связались с авторами / разработчиками адаптера NServiceBus для WMQ? Если нет, то почему нет? Вы получите лучший ответ от них.

Другие вопросы по тегам