0

我正在尝试将多个集合发送到消息流中收集器节点的同一输入终端,如下所示:

消息流

“out1”终端连接到 Collector 上名为“in1”的输入终端,“out2”连接到名为“env”的输入终端。我只想要一个集合中的一个 in1 和一个 env 一起。总共可能有多达 7 个集合。

在 ESQL 中,有一个 FOR 循环遍历集合并根据某些标准将消息传播到 in1 和 env 或不传播。传播语句在此 FOR 循环内。

这是 Colelctor 节点上的配置。两个输入终端的消息数都设置为“1”,因为我只想要一个集合中的一个 in1 和一个 env。

收集器节点配置

对于要创建两个集合的场景,我遇到的问题如下:

  1. Message1 传播到 out1 / in1
  2. Message1 传播到 out2 / env
  3. Message2 传播到 out1 / in1
  4. 所有处理停止。Flow 在可能到期时处于空闲状态。
  5. Message2 传播到 out2 / env。

看来问题出在收集器节点上,很可能是配置设置以及我如何将消息发送到输入终端。熟悉使用收集器节点的人是否看到任何明显可以纠正上述 #4 的内容?

4

1 回答 1

0

我想,你的计算节点在事务下工作。Collector 节点不支持从同一事务中接收超过 1 条消息。引自IIB知识中心:

如果事务为收集器节点传播多条输入消息,则收集器节点的行为与预期不同。

查看第一个注释: https ://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac37820_.htm

您尝试使用收集器节点的方式很奇怪。您似乎是在 Compute 节点中生成消息,那么为什么不在一个消息树中生成它们呢?

于 2018-06-10T20:09:30.790 回答