这里我有一个要求,我需要将一条消息处理到两个不同的目标系统中。因此我在 mule 中使用分散聚集。 另外,我正在处理异常。
在分散聚集的每个路线中 - 我需要处理 foreach 范围内的消息。
如果 foreach 之外存在的任何元素的任何路由中发生错误 -
MULE:COMPOSITE_ROUTING
会给我正确的错误(如果两条路由都失败,则为 2)
但是,如果 foreach 范围内的元素内部发生错误 - 那么它只会给我一个最后发生的路由错误。
我需要知道如何获得路由的错误,在配置 foreach 或分散收集范围时缺少什么。
您只会从
foreach
得到 1 个错误,因为 foreach
在第一个错误时失败。即,如果您有 5 个元素,并且 foreach
内的处理失败,第 3 个元素出现 error
,则第 4 个和第 5 个元素将不会继续处理。
要让
foreach
继续处理,您需要使用 [parallel-foreach][1]
或者您需要在 on-error-continue
范围内使用 foreach
处理错误,然后添加验证或其他内容来检查是否有任何错误元素失败。