2016-07-13 29 views
0

简介

我们与外部方交换收入数据。每年所得税法规都会发生变化,并且必须实施新的消息模式。总而言之,我们现在有8个不同的模式版本,每个版本都在单独的“年度所得税”应用程序中部署,并且每年增加1个。使用MQSeries适配器动态设置BizTalk发送端口中的端点定义

因为我们为每个安装的应用程序支付托管公司的费用,我们希望减少安装的应用程序数量。

所有这些应用程序在功能上都是相同的,这意味着我们验证传入消息,并将有效消息转发到特定的MQSeries队列中。每条无效消息都被路由到一个响应队列。每个应用程序都有自己的“有效”和“无效”消息队列。

计划

一个通用的应用程序,其处理所有8(+)的消息。新的模式必须可部署,而不需要对之前运行的“收入年税”流程进行应用程序更改或停机。

到目前为止...

我可以在同一的BizTalk收到多封邮件接收端口(消息类型的XmlDocument),并通过调用自定义接收管道(XML拆装+ XML是能够在业务流程进行动态验证这些消息验证器)。例外情况以及有效的消息按照规定进行处理。 Schema和通用应用程序之间没有引用,因此可以部署模式而无需停止正在运行的进程。到现在为止还挺好。

业务流程有1个接收形状和2个发送形状(有效,无效)。

SSO包含将“有效”和“无效”消息路由到正确队列的值。根据传入消息类型,SSO被询问是否有正确的“有效”或“无效”队列定义。

问题

我以前处理动态FTP,FILE,WCF和SMTP端口,它们都具有正确的上下文属性提供的适配器后,准确无误地运行。即使MSMQ似乎对动态设置传输属性也有相当直接的方法。

但是,我似乎无法找到MQSeries MQMT ContextProperties动态地设置queuedefinition。

微软没有提供关于this的很多信息,而且在互联网上的大量搜索还没有为我提供任何有用的示例。

我试着将IBM's docs与微软的匹配,但总的来说我现在卡住了。

回答

1

我建议使用MQSC适配器进行IBM MQ集成。它是主机集成服务器MSI的一部分。它只需要将MQ客户端安装在MQSeries适配器所需的服务器Vs MQ Server for Windows安装上。

坐落在以下格式MQSC的OutboundTransportLocation属性:// {CHANNELNAME}/TCP/{{服务器({端口})/ {的QueueManager}/{QUEUENAME}

TransportType = MQSC

上下文属性 - 架构可以在程序集MQSeriesEx.MQSPropertySchemaEx中找到,名称空间为(http://schemas.microsoft.com/BizTalk/2003/mqs-properties)。

根据需要,您只需设置几个上下文属性即可。

  • Channel_HeartBeat
  • Channel_MaxMessageLength
  • Channel_UserId
  • Channel_Password
  • ConnectionTimeout

如果附加属性是必需的不是使用MQSeries.MQSPropertySchema上下文属性。

0

谢谢Vikas您的建议。 我按照你的指示,发现它的作品!

但是,我发现它比需要更复杂一点,因为它需要我为每个流配置通道名称。

最适合我的解决方案就是我一直想到的解决方案,它就在我的面前。我的尝试失败了,因为我通过设置传出消息的属性来设置动态发送端口的属性,从而犯了致命的错误。

SendPort(Microsoft.XLANGs.BaseTypes.Address)="MQS://SERVER/QMANAGER/QUEUENAME"; 
相关问题