【发布时间】:2017-04-29 20:43:29
【问题描述】:
我有一个场景,我们使用 spring jms 将事件发布到队列并更新数据库中的状态,但有时发布到结束队列是成功的,但将状态更新到数据库失败,所以在这个特定场景中,应该滚动发布到队列的事件回到数据库更新失败,所以发布到队列是在另一个框架中,更新到数据库是另一个框架,所以我们不能将事件发布到队列和数据库更新放在我们当前使用的同一位置 JMSTEMPLATE.EXECUTE(new ProducerCallback{}) 在队列中发布。
我知道当执行到达JMSTEMPLATE.EXECUTE(new ProducerCallback{}) 方法的末尾时,它将提交,但我的数据库更新逻辑在JMSTEMPLATE.EXECUTE(new ProducerCallback{}) 方法之外,所以我想根据成功插入到数据库的情况来控制事件发布到队列表示如果插入成功响应失败,则发布到队列的事件应回滚。
谁能帮我弄清楚如何实现这个场景。
提前致谢。
【问题讨论】:
标签: java jms spring-jms