spring 来自队列的 jms 回滚事件

spring jms rollback event from queue

我有一个场景,我们使用 spring jms 到 post 事件来排队和更新数据库中的状态,但有时 post 结束队列是成功的,但更新状态到数据库失败了,所以在这个特定的场景中,事件 posted 到队列应该回滚,因为更新到数据库失败,所以 posting 到队列是在另一个框架中,更新到数据库是另一个框架,所以我们无法将事件 posting 放入队列和数据库更新中我们当前使用的相同位置 JMSTEMPLATE.EXECUTE(new ProducerCallback{}) 到队列中的 post。

我知道当执行到达 JMSTEMPLATE.EXECUTE(new ProducerCallback{}) 方法结束时它将提交,但我的数据库更新逻辑在 JMSTEMPLATE.EXECUTE(new ProducerCallback{}) 方法之外所以我想控制事件 posting根据成功插入数据库进行排队,这意味着如果插入成功响应失败事件 post 应该回滚到队列中。

谁能帮我弄清楚如何实现这种情况。

提前致谢。

您还需要在 doInJms() 方法中执行数据库更新。如果抛出异常,JMS 更新将回滚。