我目前在Spring集成中遇到了JMS事务方面的困难。我创建的集成流程如下所示:
->队列A ->发布/订阅通道(sync) JMS队列B和JMS队列C
我希望在JMS队列B和JMS队列C上保证消息的传递。但是,为了稍微增加难度,我希望将导致错误的消息存储在单独的JMQ队列中,并确认队列A上的消息。
但是,如果我在队列C上设置消息之前测试并抛出一个错误(假设首先完成队列B,其次是队列C),事务将确认队列A并提交队列B和错误队列上的消息。
当发生错误时,我应该如何告诉spring集成不要提交队列B上的消息,而只确认A并提交错误队列?
为B和C启动新事务将不起作用,因为在提交B和C之后,A上的确认可能会失败。
发布于 2015-07-15 20:39:55
对我来说,这看起来你将独立于B和C的结果来确认A。所以,坦率地说:如果有这两个单独的事务,但在第二个事务开始之前确认A。在这种情况下,B和C的回滚并发送到error-channel不会影响A。
https://stackoverflow.com/questions/31428685
复制相似问题