来自队列的spring jms rollback事件

时间:2017-04-29 00:11:47

标签: java jms spring-jms

我有一个场景,我们使用spring jms将事件发布到队列并更新数据库中的状态,但有时发布到结束队列是成功但更新状态到数据库失败所以在这个特定场景中,应该滚动发送到队列的事件返回更新到数据库失败,所以发布到队列是在另一个框架,更新到数据库是另一个框架,所以我们不能将事件发布到队列和数据库更新我们当前使用JMSTEMPLATE.EXECUTE(new ProducerCallback{})在队列中发布的相同位置

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

任何人都可以帮我解决如何实现这种情况。

提前致谢。

1 个答案:

答案 0 :(得分:1)

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