【问题标题】:Spring Integration: Message aggregator and transaction rollbackSpring Integration:消息聚合器和事务回滚
【发布时间】:2014-02-17 06:16:08
【问题描述】:

我们的应用程序中存在以下问题。消息进入入站通道适配器,并使用持久消息存储在聚合器中累积。一旦发布策略中定义的条件返回 true,消息就会被发送到处理的下一个阶段。如果在下一个处理阶段抛出异常,事务将被回滚并且消息再次被放置在持久消息存储中。但是,事务不会将消息放回原始队列,因为消息一旦放入聚合器就会被确认。这不是我们想要的。理想情况下,如果在处理聚合器已批处理的下游消息之一时发生异常,则事务将仅回滚发生错误的单个消息并将其放回原始队列中。有没有使用 Spring Integration 来做到这一点?

谢谢

【问题讨论】:

    标签: spring-integration


    【解决方案1】:

    不是内置的;您必须自己进行错误处理并将失败的消息重新排队。

    要在聚合器下游插入错误处理,您可以添加调用网关的服务激活器(使用返回 void 的方法),并向其添加 error-channel

    错误通道上的ErrorMessage 将有一个有效负载,即MessagingException,具有causefailedMessage 属性。

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 1970-01-01
      • 2018-02-27
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多