我已将 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 通道:
要使用该频道,您必须提供授权
此时每个端点都能够在第一次运行时自动创建所有队列。
效果很好!
希望对你有帮助