支持JMS的JTA事务使用
项目中使用了activemq,用mq来处理solr索引的更新和创建,由于索引经常出现一些莫名其妙的问题,后来查了很久发现是事务没有回滚的原因,数据库的事务已经回滚了,但是jms发出去的消息已经被消费掉了,索引已经更新了,但是数据库的记录没有更新。后来找到了一个比较成熟的jta事务工具,Atomikos。
?
Atomikos可以到http://www.atomikos.com/products.html#ate下载。
?
1.拷贝jta.properties到classpath中,并修改为如下内容
?
3.JMS发送消息的时候设置事务
?
jtaTransactionManager.commit(status);}catch (Exception e) {logger.warn(e.getMessage());jtaTransactionManager.rollback(status);}?
?
?