Конфигурация 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? Если нет, то почему нет? Вы получите лучший ответ от них.