MQSSendPipelineComponent(BizTalk Server 示例)
本示例演示如何写入从 XML 文件读取一组 MQSeries 属性值并将其应用到消息的管道组件。
本示例的用途
此示例由两个 Visual Studio 项目、一个管道组件项目和一个使用管道组件的管道项目组成。
本示例所在的位置
<SamplesPath>\AdaptersUsage\MQSeriesAdapter\MQSSendPipelineComponent\SetMQSeriesHeaderPropertyComponent
<SamplesPath>\AdaptersUsage\MQSeriesAdapter\MQSSendPipelineComponent\SetMQSeriesHeaderPropertyPipeline
下表显示了本示例中的文件及其用途说明:
File | 说明 |
---|---|
SetMQSeriesHeaderPropertyComponent\SetMQSeriesHeaderPropertyComponent.sln、 SetMQSeriesHeaderPropertyComponent\SetMQSeriesHeaderPropertyComponent.csproj |
管道组件的项目和解决方案文件。 |
SetMQSeriesHeaderPropertyComponent\CSetMQSeriesHeaderPropertyComponent.cs | 管道组件的 Visual C#® 源文件。 |
SetMQSeriesHeaderPropertyComponent\SetMQSMQMDHdrProps.xml | 由管道组件读取和使用的 MQSeries 属性。 |
SetMQSeriesHeaderPropertyPipeline\SetMQSeriesHeaderPropertyPipeline.btproj、 SetMQSeriesHeaderPropertyPipeline\SetMQSeriesHeaderPropertyPipeline.sln |
BizTalk 管道的项目和解决方案文件。 |
SetMQSeriesHeaderPropertyPipeline\SetMQSeriesHeaderPropertyPipeline.snk | BizTalk 管道项目的强名称密钥文件。 |
SetMQSeriesHeaderPropertyPipeline\SetMQSeriesHeaderPropertyPipeline.btp | BizTalk Server 管道。 |
如何使用本示例
若要创建应用程序,必须完成以下步骤:
为应用程序创建文件夹。
修改和编译管道组件的 Visual Studio 项目。
将编译的程序集和头文件复制到相应文件夹。
修改BizTalk Server管道的 Visual Studio 项目。
编译和部署 BizTalk Server 管道项目。
设置 BizTalk Server 接收位置。
创建 MQSeries 队列。
设置发送端口。
启用接收位置并启动发送端口。
为应用程序创建文件夹
此过程将为应用程序创建相应文件夹。
为应用程序创建文件夹
在 C:\ 驱动器上创建名为 temp 的文件夹(如果尚不存在)。
在 C:\temp 目录下创建名为 Pickup3 的文件夹。
修改和编译管道组件的项目
此过程修改和编译管道组件的 Visual Studio 项目。
修改和编译管道组件的项目
双击解决方案文件 SetMQSeriesHeaderPropertyComponent\SetMQSeriesHeaderPropertyComponent.sln 在 Visual Studio 中打开解决方案。
双击类文件 CSetMQSeriesHeaderPropertyComponent.cs 以在 Visual Studio 中打开类文件。
找到变量 samplesDir,验证此变量是否设置为位置 C:\temp。
右键单击解决方案资源管理器中的解决方案,然后单击“生成”。 这会将项目编译为位于 SetMQSerHeaderPropertyComponent\SetMQSeriesHeaderPropertyComponent\bin\Debug\ 目录中的 dll。
将程序集和头文件复制到相应文件夹
此过程将编译的程序集和头文件复制到相应文件夹。
将编译的程序集和头文件复制到相应文件夹
将编译的程序集 SetMQSeriesHeaderPropertyComponent.dll 复制到 BizTalk 管道组件文件夹。 BizTalk 管道组件文件夹的默认位置为 \Program Files (x86) \Microsoft BizTalk Server <VERSION>Pipeline Components。
将 MQHeader 属性文件SetMQSMQMDHdrProps.xml复制到 C:\temp 目录。
修改BizTalk Server管道的项目
此过程修改BizTalk Server管道的 Visual Studio 项目。
修改 BizTalk Server 管道的项目
在 Visual Studio 中,通过双击解决方案文件 SetMQSeriesHeaderPropertyPipeline\SetMQSeriesHeaderPropertyPipeline.sln 打开解决方案。
为项目创建强名称密钥文件。 为此,请执行以下操作:
打开 Visual Studio 命令提示。
将目录更改为 <SamplesPath>\AdaptersUsage\MQSeriesAdapter\MQSSendPipelineComponent。
键入下列命令:
sn -k MQSSendPipelineComponent.snk
按 Enter。 这样将创建密钥文件。
在“解决方案资源管理器”中,右键单击项目并单击“属性”,在中心窗口中) 为项目 (启动项目Designer。
在“项目Designer,单击”签名“选项卡。
在右侧窗格中,选择“ 对程序集进行签名 ”选项。
单击“ 选择强名称密钥文件 ”选项的下拉列表,然后单击“ 浏览”。
浏览到 <SamplesPath>\AdaptersUsage\MQSeriesAdapter\MQSSendPipelineComponent\MQSSendPipelineComponent.snk,单击“ 打开”。
前面创建的管道组件已添加到此管道项目的 预组装 阶段。 如果尚未添加此组件,则需要完成以下步骤来添加它:
在 Visual Studio IDE 中,单击左侧的“ 工具箱 ”选项卡。
右键单击 “工具箱”,然后单击“ 选择项”。
在 “选择工具箱项 ”对话框中,单击“ BizTalk 管道组件 ”选项卡,选择“ 自定义组件”以设置 MQseries 标头属性组件,然后单击“ 确定”。
将自定义组件拖动到此管道的预汇编阶段以设置 MQseries 标头属性组件。
编译和部署管道项目
此过程编译和部署 BizTalk Server 管道项目。
编译和部署管道项目
在“解决方案资源管理器”窗口中,右键单击解决方案,然后单击“部署解决方案”。 这样会生成解决方案,并将程序集部署到 BizTalk 管理数据库。
验证程序集是否已部署到 BizTalk 管理数据库:
打开 BizTalk 管理控制台。
单击以展开 BizTalk 组 [<servername>:<management database>],然后单击展开 “程序集” 文件夹。
部署的管道程序集应在 Assemblies 文件夹下可见。
创建接收位置
此过程创建 BizTalk Server 接收位置。
创建接收位置
在BizTalk Server管理控制台中,右键单击“接收端口”,指向“新建”,然后单击“单向接收端口”。
在 “单向接收端口属性 ”对话框中的“ 名称 ”框中,键入“MQReply”,然后单击“ 确定”。
在左窗格中,单击“ 接收位置 ”选项卡,然后单击“ 新建”。
在“ 接收位置属性 ”对话框的“ 名称 ”字段中,键入“ReceiveFile”。
在“ 传输类型 ”框中,选择“ 文件”。
在 “接收处理程序” 字段中,选择“ BizTalkServerApplication”。
在 “接收管道 ”字段中,选择“ Microsoft.BizTalk.DefaultPipelines.PassThruReceive”。
在 “接收文件夹 ”字段中,键入“C:\temp\Pickup3”。
在 “文件掩码 ”字段中,键入“*.*”。
单击“ 确定”,然后再次单击“ 确定 ”退出“ 接收位置属性 ”对话框。
通过 MQSeries 资源管理器创建 MQSeries 队列
如果您拥有安装 MQSeries Server for Windows 所需的权限,则可以通过适配器对话框创建 MQSeries 队列,并可以跳过接下来的过程。
如果您没有这样的访问权限,则可以通过以下过程使用 IBM WebSphere MQ Explorer 创建队列。
通过 MQSeries Explorer 创建 MQSeries 队列
单击“ 开始”,指向 “程序”,指向“ IBM WebSphere MQ”,然后单击“ WebSphere MQ 资源管理器”。
双击“ 队列管理器”,然后双击默认队列管理器。 默认队列管理器通常名为 QM_<machine_name> 其中 machine_name 是计算机的名称。
右键单击“ 队列”,指向“ 新建”,然后单击“ 本地队列”。
在“ 创建本地队列 ”对话框的“ 队列名称”中,键入 “SETHEADER”,然后单击“ 确定”。
创建发送端口和 MQSeries 队列
此过程创建输出消息的发送端口。 创建发送端口时,如果尚未创建 MQSeries 队列,也将创建该队列。
创建发送端口和 MQSeries 队列
右键单击“ 发送端口”,指向“ 新建”,然后单击“ 静态单向发送端口”。
在“ 发送端口属性 ”对话框的“ 名称 ”框中,键入“MQSolicitResponse”。
在“ 传输类型 ”框中,选择“ MQSeries”。
在“ 发送管道 ”框中,选择“ SetMQSeriesHeaderPropertyPipeline.SetMQSeriesHeadersSendPipeline”。
在 “筛选器”中,添加具有以下名称/值对的新条目:
将 “属性 ”设置为“BTS。ReceivePortName”。
将 运算符 设置为“==”。
将 “值 ”设置为“ReceiveFile”。
注意
这样会将发送端口设置为订阅在 ReceiveFile 接收端口上到达的消息。
单击“ 传输”。
在“ 地址 (URI) ”字段中,单击省略号 (...) 按钮。
在“ MQSeries 传输属性 ”对话框的“ 队列定义 ”字段中,单击省略号 (...) 按钮。
在“ 队列定义 ”对话框的“ 服务器名称” 字段中,键入计算机名称。
在 “队列管理器 ”字段中,选择默认队列管理器。
在“队列”字段中,键入“SETHEADER”,然后单击“ 导出”。
在“ 导出 ”对话框中,单击“ 创建队列”,然后单击“ 确定 ”或“ 完成” ,直到退出所有对话框。
启用接收位置并启动发送端口
此过程将启用接收位置并启动发送端口。
启用接收位置并启动发送端口
在BizTalk Server管理控制台中,单击“接收端口”。
在详细信息窗格中,右键单击 MQIn 接收位置,然后单击 “启用”。
在详细信息窗格中,右键单击 SetMQHeader 发送端口,然后单击 “开始”。
测试应用程序
此过程将测试应用程序。
测试应用程序
将文件放入 C:\Temp\Pickup3 文件夹中。
启动 WebSphere MQ Explorer,双击 SETHEADER 队列以检查 SETHEADER 队列中的消息。
若要查看 SETHEADER 队列中的所有消息上下文属性,请完成以下步骤:
双击 SETHEADER 队列以显示 “消息浏览器 ”对话框。
在“ 消息浏览器 ”对话框中,单击“ 列 ”以显示 “显示/隐藏消息的列 ”对话框。
在“ 可用列”下,双击每个条目,使其在 “消息浏览器 ”对话框中可见,然后单击“ 确定”。
每条消息的消息上下文属性应在“ 消息浏览器 ”对话框中可见。