消息流节点是消息流中的处理步骤。
它接收消息、执行一组针对消息的操作并可以选择继续将消息传递到消息流中的下一个节点。消息流节点可以是内置节点用户定义的节点或子流节点。
消息流具有固定数量的输入和输出点,称为终端。可以在终端之间建立连接来定义消息经过消息流的路径。
有关 WebSphere Message Broker 提供的所有内置节点的信息,请参阅内置节点。
消息被 Input 节点接收,并根据子流的定义进行处理。哪可能包括通过 Warehouse 节点存储,或传递到另一个消息目标(例如通过 MQOutput 节点)。如果要求,则消息可以通过 Output 节点 传回主流供进一步处理。
当子流嵌入在主流中时,它由有一个唯一的图标的子流节点表示。显示图标,附带表示在子流定义中包含的表示 Input 和 Output 节点的正确终端 数。
子流最常见的用法是提供在消息流中的许多地方所需的处理,或者在多个消息流之间共享该子流。例如,您可以在子流中编码一些错误处理,或创建子流来提供审计跟踪(存储整个消息并写跟踪条目)。
错误处理程序样本和协调请求应答样本中展示了子流的用法。样本 Error Handler 使用子流来捕获出错信息并将此类信息存储在数据库中。协调请求应答样本使用子流来包括在 WebSphere MQ 消息中存储 ReplyToQ 和 ReplyToQMgr 的过程,因此可以在其他消息流中复用该处理逻辑并使您能够替换备用实施。
节点并不总是为每个输出终端产生输出消息:它常常根据收到的消息或节点操作的结果为单个终端产生一个输出。例如,Filter 节点通常在 true 终端或 false 终端上发送消息,但不会同时在这两个终端上发送消息。
如果连接了多个终端,节点在每个终端上发送输出消息,但只有在当前终端的处理完成后才会在下一个终端上发送。对消息的更新永远不会传播到先前执行的节点上,只会传播到进行更新的节点后面的节点上。将消息传播到不同输出终端的顺序是由代理决定的,您不能更改这个顺序。此规则唯一一个例外就是 FlowOrder 节点,在该节点中,终端指示将消息传播到每个终端的顺序。
只有当通过消息流的所有路径(即,从所有输出终端连接的节点)的处理都完成之后,消息流才能接受新的消息进行处理。
航空公司订票样本在 XML_Reservation 样本中使用环境变量存储已经从数据库表中获取的信息,并将该信息传递倒消息流中的下游节点。