消息序列
使用消息序列确保按照特定顺序将消息交付至接收应用程序。
IBM® App Connect Enterprise 支持为消息添加序列号,并支持根据序列号对消息流中的消息进行重新排序。 消息可以按任意顺序到达,您可以使用 序列 和 重新排序 节点将消息重新排序为所需序列。
在某些应用程序中,按照特定顺序处理消息的能力对于维护工作流完整性非常重要。 例如,必须按照发生顺序处理某个银行帐户的一系列借记和贷记,而且必须按照到达顺序发送所收到的、处理的和转发的患者记录。
到达消息流的消息可能包含或不包含序号。 如果从输入源接收到无序号的消息,那么可以保留接收消息的顺序,方法是使用 序列 节点为序列组中的每条消息生成单调递增的序号。 当每条消息到达 Sequence 节点时,序号将递增并与消息一起存储在节点上指定的位置中。
有关飞行中消息状态的信息存储在由 IBM MQ 控制的存储队列中。 如果您在由集成节点管理的集成服务器上使用消息排序功能,则必须在与集成节点位于同一台计算机上安装 IBM MQ ,才能使用 “排序 ”和 “重新排序 ”节点提供的功能。 如果您在独立的集成服务器上使用这些节点,可以使用远程默认队列管理器来控制系统队列,而无需在集成服务器所在的同一台机器上安装 IBM MQ。 独立集成服务器与 IBM MQ 之间的交互可通过客户端连接到远程队列管理器,并采用默认策略设置。 有关使用远程缺省队列管理器的更多信息,请参阅 使用远程缺省队列管理器 和 配置集成服务器以使用远程缺省队列管理器。
当输入消息包含序号时,无论这些序号是由 Sequence 节点添加还是已在消息中的整数字段中定义,都可以使用 Resequence 节点来更改消息流中的消息顺序。
当消息到达 Resequence 节点时,它们将保留在存储队列中,直到传播并落实序列中的所有先前消息为止。 在每条消息变为序列中的下一条消息时,它将离开队列并向下传播至 Out 终端。 此事件序列确保消息保持正确的顺序,即使消息处理失败。
- SYSTEM.BROKER.EDA.COLLECTIONS
- SYSTEM.BROKER.EDA.EVENTS
- 必须总是维护消息序列
- 消息序列中允许间隔,但是所有其他消息都必须位于序列中
- 允许偶尔时序消息
有关如何为这些场景配置 Resequence 节点的信息,请参阅 处理缺少的消息。
您可以将消息划分为可独立进行处理的序列组,从而允许同时处理多个序列。 有关序列组和重复消息处理的更多信息,请参阅 序列组。
有关控制序列开始和结束的方式的更多信息,请参阅 启动消息序列。