Spring集成JMS事务错误通道事务

Spring集成JMS事务错误通道事务,jms,spring-integration,Jms,Spring Integration,我目前在Spring集成中处理JMS事务时遇到困难。我正在创建的集成流如下所示: JMS队列A->发布/订阅通道(同步)->JMS队列B和JMS队列C 我希望在JMS队列B和JMS队列C上保证消息的传递。但是,为了使传递稍微困难一些,我希望将导致错误的消息存储在单独的JMQ队列上,并在队列a上确认消息 但是,如果我在队列C上设置消息之前测试这个并抛出一个错误(假设先完成队列B,然后完成队列C),事务将确认队列A并提交队列B和错误队列上的消息 我应该如何告诉spring integration在发

我目前在Spring集成中处理JMS事务时遇到困难。我正在创建的集成流如下所示:

JMS队列A->发布/订阅通道(同步)->JMS队列B和JMS队列C

我希望在JMS队列B和JMS队列C上保证消息的传递。但是,为了使传递稍微困难一些,我希望将导致错误的消息存储在单独的JMQ队列上,并在队列a上确认消息

但是,如果我在队列C上设置消息之前测试这个并抛出一个错误(假设先完成队列B,然后完成队列C),事务将确认队列A并提交队列B和错误队列上的消息

我应该如何告诉spring integration在发生错误时不要提交队列B上的消息,而只确认A并提交错误队列


为B和C启动新事务将不起作用,因为在提交B和C后,a上的确认可能会失败。

对我来说,看起来您将独立于B和C的结果来确认a。因此,坦率地说:如何进行这些单独的事务,但在启动第二个事务之前确认a。在这种情况下,对B和C进行回滚并发送到
错误通道
不会影响A。

对我来说,看起来您将独立于对B和C的结果来确认A。坦白说,如何进行这些单独的事务,但在开始第二个事务之前确认A。在这种情况下,回滚B和C并发送到
错误通道
不会影响A。

但是,如果第二个事务回滚并且在将消息写入JMS错误通道时发生错误,则消息可能会丢失。由于A在到达时已确认,因此消息将丢失..确定。要不要看一下
客户确认
?但是,如果第二个事务回滚,并且在将消息写入JMS错误通道时发生错误,则消息可能会丢失。由于A在到达时已确认,因此消息将丢失..确定。要不要看一下
客户确认