集合聚合器未正确聚合响应 Mule ESB

Collection aggregator not aggregating response properly Mule ESB

我有流量,我将在根标签 Items 下有多个 Item。我有拆分器,它可以拆分每个项目并进行一些处理。之后,我使用 Collection aggregator 收集所有响应。

在我的流程中,虽然所有响应都已到达聚合器,但观察到集合聚合器正在等待某事。聚合器之后没有收集响应(因为它正在等待一些响应)。 但我确定(如果 Items 中有 5 个项目),所有响应都会到达聚合器。但不确定为什么聚合器仍未传递其输出(但有时会传递)

如果我在聚合器中保持超时 30000 并且在超时 ="false" 时失败,现在它已被传递出去并且正在聚合响应(5 项)。

但我很确定,消息会在 20000 毫秒内到达聚合器。但它一直在等待一些东西:(。

为什么集合聚合器会出现这种行为。有人知道吗?请找到配置..

    <flow name="Items" doc:name="Items">
    <vm:inbound-endpoint exchange-pattern="one-way" path="QUEUE" connector-ref="VM_Q1" doc:name="QUEUE">
    </vm:inbound-endpoint>
    <splitter expression="#[xpath('/Items/Item')]" doc:name="Splitter"/>
  <vm:outbound-endpoint exchange-pattern="one-way" path="OUT1" connector-ref="MAIN_VM" doc:name="Test Queue">
 </flow>

  <flow name="Items1" doc:name="Items">
  <vm:inbound-endpoint exchange-pattern="one-way" path="OUT1" connector-ref="MAIN_VM" doc:name="Test Queue"/>
.............doing some transformation and processing.....
<collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/>  
  </flow>

使用版本:3.5.1 我们如何追踪它到底是什么?我保留了记录器并检查了所有 5 个项目是否在聚合器之前填充。 帮助会更多appreciated.Thanks.

已编辑: 在拆分器组件后记录 Item

的每次迭代
  After splitter:{MULE_CORRELATION_SEQUENCE=1, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=3, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=4, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}
 After splitter:{MULE_CORRELATION_SEQUENCE=5, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686}

在集合聚合器之前记录

  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=1, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=13783281-a036-11e4-a356-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
  Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8}
 Before Collection Aggregator:{MULE_CORRELATION_SEQUENCE=2, MULE_CORRELATION_GROUP_SIZE=5, MULE_ENCODING=UTF-8, MULE_CORRELATION_ID=9f7447b1-a03b-11e4-85dd-b8ee652d2686, Content-Type=text/plain;charset=UTF-8} 

@David 请建议。 MULE_CORRELATION_SEQUENCE=2 重复多次。但是每个 correlation_seq=2 的提取有效载荷是正确的并且不同。如何解决这个问题?

我的直觉是 doing some transformation and processing 中的某些东西正在破坏这些控制属性,从而阻止聚合工作。

我意识到很容易指责上面没有显示的内容,但日志显示控件属性发生了明显的变化,因此它必须发生在这个引出块中的某个地方。