spring分布式事务
分布式事务是指操作多个数据库之间的事务,spring的org.springframework.transaction.jta.JtaTransactionManager,提供了分布式事务支持。如果使用WAS的JTA支持,把它的属性改为WebSphere对应的TransactionManager。
??? 在tomcat下,是没有分布式事务的,不过可以借助于第三方软件jotm(Java Open Transaction Manager )和AtomikosTransactionsEssentials实现,在spring中分布式事务是通过jta(jotm,atomikos)来进行实现。
1、http://jotm.objectweb.org/
2、http://www.atomikos.com/Main/TransactionsEssentials
一、使用JOTM例子
(1)、Dao及实现
- <bean?id="atomikosTransactionManager"?class="com.atomikos.icatch.jta.UserTransactionManager"???????init-method="init"?destroy-method="close">???????<property?name="forceShutdown"?value="true"/>???</bean>?????<bean?id="atomikosUserTransaction"?class="com.atomikos.icatch.jta.UserTransactionImp">???????<property?name="transactionTimeout"?value="${transaction.timeout}"/>???</bean>????<!--?JTA事务管理器?-->???<bean?id="springTransactionManager"?class="org.springframework.transaction.jta.JtaTransactionManager">???????<property?name="transactionManager"?ref="atomikosTransactionManager"/>???????<property?name="userTransaction"?ref="atomikosUserTransaction"/>???</bean>????<!--?事务切面配置?-->???<aop:config>???????<aop:pointcut?id="serviceOperation"??expression="execution(*?*..service*..*(..))"/>???????<aop:advisor?pointcut-ref="serviceOperation"?advice-ref="txAdvice"/>???</aop:config>????<!--?通知配置?-->??<tx:advice?id="txAdvice"?transaction-manager="springTransactionManager">???????<tx:attributes>??????????<tx:method?name="*"?rollback-for="Exception"/>???????</tx:attributes>???</tx:advice>??