Mule ESB - 捕获异常策略块和有效负载

时间:2015-04-15 07:56:02

标签: exception mule esb auditing

Mule文档指出catch-exception-strategy类似于java catch块。但不幸的是,有效载荷被消耗(消息消耗);从catch块中丢失有效负载(与java方法不同,在java方法中,您可以从catch / finally块访问方法输入参数)。

这种设计的问题在于,在任何情况下,(从捕获策略流程)都不可能知道错误和最后使用的已知富集有效负载(导致错误?)。这使得导致错误的数据的审计变得复杂。

假设存在具有10个消息处理器的流,则识别出错误的消息处理器变得冗长乏味。

我可以看到有关有效载荷的2个解决方法:
1)在入站端点之后,在每个消息处理器之前将有效负载推送到流量变量(另一个缺点是入站属性和附件会发生什么?)
2)使用Rollback异常策略,尝试为零(事务将回滚),并且原始输入消息可用。 (缺点:很难反思错误发生的原因以及消息处理器 - 例如:我可能有5个或6个DB处理器)

这一点变得很重要的原因是支持生产中的ESB应用程序变得更容易。

例如,如果我们能够管理有效负载和异常详细信息(链接到单个UID),则从catch块中,您可以运行日志监视工具,将其推送到实时仪表板以进行监视目的/提醒警报。可以将相同的方法统一应用于所有应用程序/流和Java组件等。

MMC在这方面很弱 - 例如,如果你想在5次出现后从批处理作业中抑制警报,MMC就无法做到。

我的问题是: 1)为什么有效载荷不可用有什么原因吗? 可能的解决方法是将(最后已知数据)推送到另一个变量,作为名为originalPayload或originalInboundProperties的消息的一部分? 2)任何其他直接的方法将异常和有效负载管道到一个appender(而不是解决方法)?

Ananth Krishnan(WHISHWORKS.com)

0 个答案:

没有答案