扩展 TCPIP Client Nodes 样本
此扩展说明如何扩展样本以合并单独的独立 TCP/IP 服务器,替代异步样本中描述的 TCPIPServerSimulation 流,该流配置为将数据回传到连接客户机。
此扩展还说明如何通过使用本地环境覆盖某些连接属性。
样本扩展概述:
- 可以修改放入 TCPIP_ASYNC_IN 队列的输入消息,以便其中包含有关 TCP/IP 服务器主机名和端口的信息。
- TCPIPAsyncOut 流中的 JavaCompute 节点将把此信息复制到本地环境。
- TCPIPClientOutput 节点在“属性”视图的“请求”选项卡中配置,以便能够接受对来自本地环境的某些连接详细信息的覆盖。
本地环境中存在对端口和/或主机名的覆盖,以便 TCPIPClientOutput 节点通过在本地环境中使用这些详细信息获取连接。
- 从而无需修改 TCPIPAsyncOut 消息流,即可动态将消息路由到 TCP/IP 服务器。
- 还必须在 TCPIPAsyncIn 消息流中的 TCPIPClientInput 节点内设置新的连接详细信息,以确保此节点接收来自 TCP/IP 服务器的响应。
- 本样本随附了样本输入消息和 .mbtest 文件,并且它们会假定您的 TCP/IP 服务器正在侦听 localhost:7778。
运行样本扩展:
- 通过使用以下选项之一修改消息流,来与 TCP/IP 服务器通信:
- 如果 TCP/IP 服务器正在侦听 localhost:7778,请将 TCPIPAsyncIn 消息流中 TCPIPClientInput 节点的连接详细信息属性更改为 localhost:7778。保存消息流。
- 如果 TCP/IP 服务器未侦听 localhost:7778,请完成以下步骤:
- 在 TCPIPClientNodesSampleFlowProject 内,打开 AsyncExtendMessage.xml 文件。
- 修改 AsyncExtendMessage.xml 以将端口和/或主机名从 localhost:7778 更改为 TCP/IP 服务器正在侦听的端口。保存文件。
- 打开 TCPIPAsyncExtendTest.mbtest。单击“入队”和“导入源”,然后导入 AsyncExtendMessage.xml。
保存此测试文件。
- 将 TCPIPAsyncIn 消息流中 TCPIPClientInput 节点的连接详细信息属性更改为匹配测试消息中的属性。
保存消息流。
- 确保 TCPIPClientNodesSampleArchive.bar BAR 文件包含异步消息流,而非同步消息流。
如果按照上一步所显示修改了流,请重构建并保存 BAR 文件:
- 在 IBM Integration Toolkit 中,使用代理归档编辑器选择并打开 TCPIPClientNodesSampleArchive.bar。
选择“准备”选项卡,然后单击“构建代理归档”。
保存 BAR 文件。
- 将 BAR 文件部署到 TCPIPClientNodesSampleExecutionGroup 中。
- 打开 TCPIPAsyncExtendTest.mbtest,单击“入队”,然后单击“发送消息”。将发生以下事件:
- 修改后的消息将发送到 TCPIPAsyncIn 消息流中。
- JavaCompute 节点将把更新后的主机名和端口复制到本地环境 ($LocalEnvironment/Destination/TCPIP/Output/) 中。
- TCPIPClientOutput 节点将通过使用本地环境中已覆盖的连接详细信息发送数据。
- TCP/IP 会服务器选取此数据并将其回传到相同端口。
- 此数据由 TCPIPAsyncIn 消息流中的 TCPIPClientInput 节点接收,该节点按照处理异步样本中数据的相同方式处理该数据。
- 单击“出队”,然后单击“获取消息”。
- 检查是否已经通过 WebSphere MQ 成功发回了更新后的消息:
- 通过使用 XML 结构视图在“详细属性”面板中查看应答消息。
- 将此消息与之前通过“入队”事件发送的消息进行比较。
除非 TCP/IP 服务器已经更改了消息体,否则这两个消息是完全相同的。
如果前面的所有步骤都成功,那么样本就完成了。查看这三个消息流中的节点,以了解如何实现结果。
“基本”选项卡中的连接详细信息属性类似下面的截屏:
返回到样本主页