运行 TCPIP Client Nodes 样本
导入并部署该样本后,可以遵循运行异步样本和运行同步样本部分中的指示信息运行该样本。
有关“高级”选项卡中可用流控制选项的信息,请参阅高级选项。
有关这些节点的工作及配置方式的概述,请参阅 IBM Integration Bus 文档中的
TCP/IP 概述。
也可以将此样本扩展为与单独的 TCP/IP 服务器通信;请参阅扩展 TCPIP Client Nodes 样本。
如果运行此样本时遇到任何问题,请参阅 IBM Integration
文档中的解决运行样本时的问题。
此样本使用消息流 TCPIPAsyncIn、TCPIPAsyncOut 和 TCPIPServerSimulation。
要运行样本:
- 在“应用程序开发”视图中,展开 TCPIPClientNodesSampleFlowProject。
- 展开 Flow Tests 目录,双击 TCPIPAsyncTest.mbtest 以在测试客户机中打开消息。
单击“入队”。
- 单击“详细属性”面板中的“发送消息”。
将发生以下事件:
- 一个 WebSphere MQ 请求消息将置于 TCPIP_ASYNC_IN 队列。
此请求由 TCPIPAsyncOut 消息流读取。
- JavaCompute 节点检查消息体中是否指定了服务器主机名和端口号。这些字段尚未设置,因此 JavaCompute 节点不起作用。
有关如何使用此 JavaCompute 节点的示例,请参阅扩展 TCPIP Client Nodes 样本。
- 消息通过使用端口 7777 上的 TCPIPClientOutput 节点发送。
在此节点的“请求”选项卡中,与此 TCP/IP 连接关联的“应答标识位置”属性设置为 WebSphere MQ ReplyToQ。
- TCPIPServerSimulation 流中的 TCPIPServerInput 节点侦听端口 7777,并接受来自 TCPIPClientOutput 节点的连接。
- TCPIPServerSimulation 流通过添加 <ServerUpdate>OK</ServerUpdate> 修改消息,并在端口 7777 上发回消息。
- TCPIPAsyncIn 消息流中的 TCPIPClientInput 节点将接收数据。
TCPIPClientInput 节点会重置来自与连接关联的应答标识的 WebSphere MQ ReplyToQ 属性。
- 消息将通过 MQReply 节点传播回去。
- 单击“出队”。
- 单击“详细属性”面板中的“获取消息”。
- 检查是否已经通过 WebSphere MQ 成功发回了更新后的消息:
- 通过使用 XML 结构视图在“详细属性”面板中查看应答消息。
- 将此应答消息与之前通过“入队”事件发送的消息进行比较。
已经向消息体的头部分添加了元素 <ServerUpdate>OK</ServerUpdate>。
如果前面的所有步骤都成功,那么样本就完成了。查看这三个消息流中的节点,以了解如何实现结果。
此样本使用消息流 TCPIPSync 和 TCPIPServerSimulation。
要运行样本:
- 此样本中的异步和同步部分使用同一个端口号;因此,必须确保为同步样本部署了正确的流:
- 在 IBM Integration Toolkit 中,选择“Integration 节点”视图。
- 右键单击 TCPIPClientNodesSampleExecutionGroup,然后单击“删除 > 所有流和资源”。
- 选择并打开 TCPIPClientNodesSampleArchive.bar。
在“准备”选项卡中,清除 TCPIPAsyncIn 和 TCPIPAsyncOut 消息流,然后选择 TCPIPSync 消息流。
确保仍然选择了 TCPIPServerSimulation 流和 TCPIPClientNodesSampleJavaProject。
- 单击“构建并保存...”,然后保存该 BAR 文件。
- 将 BAR 文件拖动到 TCPIPClientNodesSampleExecutionGroup 中。
- 检查是否已部署了以下对象:
- TCPIPSync 消息流
- TCPIPServerSimulation 消息流
- TCPIPClientNodesSampleJavaProject
- 在“应用程序开发”视图中,展开 TCPIPClientNodesSampleFlowProject。
- 展开 Flow Tests 目录,然后双击 TCPIPSyncTest.mbtest 以在测试客户机中打开消息。
单击“入队”。
- 单击“详细属性”面板中的“发送消息”。
将发生以下事件:
- 一个 WebSphere MQ 请求消息将置于 TCPIP_SYNC_IN 队列。
此请求由 TCPIPSync 消息流读取。
- 消息通过使用端口 7777 上的 TCPIPClientOutput 节点发送。
与异步模型不同,ReplyToQ 无需显式保存,因为通过此同步流之后,它仍然会在消息树中保持未更改。
- TCPIPClientReceive 节点等待来自服务器的响应。
- TCPIPServerSimulation 流中的 TCPIPServerInput 节点侦听端口 7777,并接受来自 TCPIPClientOutput 节点的连接。
- TCPIPServerSimulation 流通过添加 <ServerUpdate>OK</ServerUpdate> 修改消息,并在端口 7777 上发回消息。
- TCPIPSync 消息流中的 TCPIPClientReceive 节点将接收数据。
在此节点的“结果”选项卡中,响应消息作为响应元素显式嵌入原始消息内。
- 消息将通过 MQReply 节点传播回去。
- 单击“出队”。
- 单击“详细属性”面板中的“获取消息”。
- 检查是否已经通过 WebSphere MQ 成功发回了更新后的消息:
- 通过使用 XML 结构查看器在“详细属性”面板中查看应答消息。
- 将此消息与之前通过“入队”事件发送的消息进行比较。
整个响应消息显示为嵌入消息中的 <Response> 元素,后跟原始 Header、SaleList 和 Trailer 元素。
扩展此响应消息;已经向消息体的头部分添加了 <ServerUpdate>OK</ServerUpdate>。
如果前面的所有步骤都成功,那么样本就完成了。查看这两个消息流中的节点,以了解如何实现结果。
所有 TCPIP 节点均在其“高级”选项卡中包含流控制选项。以下详细信息提供如何在 TCPIP Client Nodes 样本中设置流控制属性的概述:
TCPIPAsyncOut 消息流
- TCPIPClientOutput 节点
- “输入流修改”属性保持为未更改状态。
- “输出流修改”属性保留供消息流中此节点之后到达的节点使用。
除非发布了流,否则流的其他任何实例均不可使用这个特定流。
TCPIPAsyncIn 消息流
- TCPIPClientInput 节点
- “输入流修改”属性保持为未更改状态。
- “输出流修改”属性已发布。
此流已完成;因此发布回池。
TCPIPSync 消息流
- TCPIPClientOutput 节点
- “输入流修改”属性保持为未更改状态。
- “输出流修改”属性保留供消息流中此节点之后到达的节点使用,并在流结束时发布。
TCPIPSync 消息流功能的运行方式与 TCPIPAsyncOut 消息流不同,TCPIPSync 消息流在一个流中执行所有其处理(输入和输出),而不是输入和输出分别使用单独的子流。
因此,可以显式配置输出连接的发布时间。
- TCPIPClientReceive 节点
- “输入流修改”属性保持为未更改状态。
- “输出流修改”属性保持为未更改状态。
此流在 TCPIPClientOutput 节点中配置;无需在 TCPIPClientReceive 节点中显式发布该流。
TCPIPServerSimulation 消息流
- TCPIPServerInput 节点
- “输入流修改”属性已保留,并在流结束时发布。
处理完成之前,此特定流中不允许新客户机连接。
- “输出流修改”属性未更改。
- TCPIPServerOutput 节点
- “输入流修改”属性保持为未更改状态。
无需修改此属性,因为 TCPIPServerInput 节点中已经配置了此流的处理方式。
- “输出流修改”属性保持为未更改状态。
返回到样本主页