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 更新将回滚。
我有一个场景,我们使用 spring jms 到 post 事件来排队和更新数据库中的状态,但有时 post 结束队列是成功的,但更新状态到数据库失败了,所以在这个特定的场景中,事件 posted 到队列应该回滚,因为更新到数据库失败,所以 posting 到队列是在另一个框架中,更新到数据库是另一个框架,所以我们无法将事件 posting 放入队列和数据库更新中我们当前使用的相同位置 JMSTEMPLATE.EXECUTE(new ProducerCallback{})
到队列中的 post。
我知道当执行到达 JMSTEMPLATE.EXECUTE(new ProducerCallback{})
方法结束时它将提交,但我的数据库更新逻辑在 JMSTEMPLATE.EXECUTE(new ProducerCallback{})
方法之外所以我想控制事件 posting根据成功插入数据库进行排队,这意味着如果插入成功响应失败事件 post 应该回滚到队列中。
谁能帮我弄清楚如何实现这种情况。
提前致谢。
您还需要在 doInJms()
方法中执行数据库更新。如果抛出异常,JMS 更新将回滚。