【问题标题】:NServiceBus and WebSphere mq configurationNServiceBus 和 WebSphere mq 配置
【发布时间】:2013-12-25 16:08:40
【问题描述】:

我正在尝试将我的 NServiceBus 项目配置为使用 WebSphere mq。 我一直在搜索所有其他网络,但没有找到任何最新的示例。 根据this post,有一个 dll 公开了用于 WMQ 配置的 API。 但是,他们的示例适用于非常旧的 NServiceBus 版本,并且与当前 (4.3.1) 版本不兼容。 唯一有一些真实示例的手册是this one,它适用于 PubSub,而不适用于简单的客户端服务器配置。 谁能告诉我一个最新的例子,描述我应该如何配置我的 NSB 项目以使用 WMQ。

谢谢!

【问题讨论】:

    标签: nservicebus ibm-mq nservicebus4


    【解决方案1】:

    我已将 NServiceBus.WebSphereMQ 迁移到 NServiceBus 版本 5。 将该解决方案用于 P.O.C.实现不是很优雅,因此,我没有勇气在 Git Hub 上发布它:-D。

    在 P.O.C.我使用 NServiceBus.WebSphereMQ 传输创建了两个端点。

    配置很简单。

    在每个 Endpoint 的配置文件 (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 名称和 Channel 名称是非常重要的信息,稍后会指定。 使用 VisualStudio 2013 的 ServiceMatrix,我已经自动生成了 EndpointConfig 文件,在里面指定了传输的逻辑:

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

    这就是代码方面的全部内容。

    为了测试使用 MQ 的通信,我从 IBM 网站下载了 WebSphere MQ Advanced(它是免费的): http://www-01.ibm.com/support/docview.wss?uid=swg24032734 如果您安装的是 7.5 版本,请记得安装推荐的修补程序!

    首先你必须配置一个QueueManager。为此,我使用了如下所示的 WebSphere MQ Explorer 工具:

    然后,您必须创建一个 Server-Connection 通道:

    要使用该频道,您必须提供授权

    此时每个端点都能够在第一次运行时自动创建所有队列。 效果很好!

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      我们一直在为 v4 开发 WebSphereMQ 传输,请参阅 https://github.com/Particular/NServiceBus.WebSphereMQ

      【讨论】:

      • 谢谢你!您有此适配器的 NSB 配置示例吗?
      • 并非如此,您需要做的只是指定传输并配置连接字符串
      • 令人失望的是,NSB 不支持开箱即用的 MQ。我刚刚尝试针对版本 5 构建代码,但它到处都失败了。如果您不支持 MQ,就很难将 NSB 作为企业解决方案认真对待。
      【解决方案3】:

      您是否联系过 WMQ 的 NServiceBus 适配器的作者/开发者?如果不是,为什么不呢?你会从他们那里得到最好的答案。

      【讨论】:

        猜你喜欢
        • 2012-09-06
        • 2013-05-07
        • 2013-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-08
        • 2013-05-23
        • 2016-11-01
        相关资源
        最近更新 更多