我使用的是ApacheCamel3.1.0和SpringBoot1.5.6,我已经成功地创建了完美工作的camel事务路由。基本路线是这样的
from(Source JmsEndpoint)
.process(
myDaoImplClass.myTransactionalDatabaseMethod("Save data coming in Message")
).to(Destination Endpoint)
当目标队列的队列深度已满,并且由于事务路由的原因,该队列未从源队列中删除时,会发生问题。因此,源队列再次发送相同的消息,并且我的数据库方法由于重复的消息而给出dataintegrityviolationexception。
有没有一种方法可以回滚持久化的数据,或者只有在整个路由成功时才进行提交。
1条答案
按热度按时间deyfvvtc1#
查看camels oncompletion和工作单元概念。
你只能用它来做失败或成功的事情。