Spring integration 事务轮询器将异常提交到错误通道

Spring integration 事务轮询器将异常提交到错误通道,spring-integration,Spring Integration,我有一个事务轮询器定期轮询来自jdbc支持的队列通道的消息 我有两个目标: 1)防止进程在消息处理过程中死亡的消息源丢失消息。 2) 通过将相关异常丢弃到错误通道(并转到下一条消息),防止一条格式错误的消息导致整个进程中断 我的问题: 如何设置(理想情况下通过dsl)事务轮询器,使其在不回滚事务的情况下将错误消息丢弃到错误通道? (以防止同一消息反复重播的无限循环) 提前非常感谢您的反馈和专业知识 向您致意当前的体系结构(我怀疑我们是否会改变它)是基于这样一个事实,即在事务回滚之后,我们已经从轮

我有一个事务轮询器定期轮询来自jdbc支持的队列通道的消息

我有两个目标:
1)防止进程在消息处理过程中死亡的消息源丢失消息。 2) 通过将相关异常丢弃到错误通道(并转到下一条消息),防止一条格式错误的消息导致整个进程中断

我的问题:
如何设置(理想情况下通过dsl)事务轮询器,使其在不回滚事务的情况下将错误消息丢弃到错误通道?
(以防止同一消息反复重播的无限循环)

提前非常感谢您的反馈和专业知识

向您致意当前的体系结构(我怀疑我们是否会改变它)是基于这样一个事实,即在事务回滚之后,我们已经从轮询器发送到了
errorChannel
。这样,我们不仅可以解决消息的问题,还可以解决提交过程中可能出现的故障。因此,使用相同的
errorChannel
处理轮询任务的任何异常

因为这样的<代码> Error Chans方法不符合您的要求,因为错误的消息将被回滚到下一次投票的DB中,所以我建议您考虑使用一个<代码> ExpRealStudioReQuththand Load建议在一些极小的服务上,您肯定在错误的消息中失败了。通过这种方式,您可以配置适当的

故障通道
,并在那里发送错误消息,使整个过程保持不变,从而最终正确提交

查看文档中的更多信息:

当前体系结构(我怀疑我们是否会更改它)基于这样一个事实,即我们在事务回滚后已从轮询器发送到
错误通道。这样,我们不仅可以解决消息的问题,还可以解决提交过程中可能出现的故障。因此,使用相同的
errorChannel
处理轮询任务的任何异常

因为这样的<代码> Error Chans方法不符合您的要求,因为错误的消息将被回滚到下一次投票的DB中,所以我建议您考虑使用一个<代码> ExpRealStudioReQuththand Load建议在一些极小的服务上,您肯定在错误的消息中失败了。通过这种方式,您可以配置适当的

故障通道
,并在那里发送错误消息,使整个过程保持不变,从而最终正确提交

请参阅文档中的更多信息: