首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring应用JTA进行分布式事务管理

2012-08-26 
Spring使用JTA进行分布式事务管理使用SpringJTA进行分布式事务管理,需要引入第三方UserTransaction。例如:J

Spring使用JTA进行分布式事务管理

使用SpringJTA进行分布式事务管理,需要引入第三方UserTransaction。例如:JOTM、Atomikos



JOTM?(Java Open Transaction Manager)是一个独立的开源事务管理器,它实现了 XA 协议并且与 JTA API 兼容。



Atomikos是一个公司的名字,AtomikosTransactionsEssentials是其开源的分布式事务软件包,而ExtremeTransactions是商业的分布式事务软件包。TransactionsEssentials是基于apache-license的,是JTA/XA的开源实现,支持Java Application和J2EE应用。

?


这里使用的是Atomikos作为事务管理器。

?

??将Atomikos的dist目录下的所有jar包复制到工程下

?

?? 配置DataSource:

?

?? 配置SessionFactory:

?

?

?

??配置JTA事务:

?

<tx:annotation-driven transaction-manager="jtaTxManager"/>

?

在使用的过程中可能会出现诸多异常问题,大多是各个数据库权限问题引起的,这里整理出来些:

例如:

exception:【com.atomikos.datasource.ResourceException: Error in recovery 】

解决:

?

以SYSDBA登录SQL Plus

grant select on sys.dba_pending_transactions to 当前数据库用户;?

grant select on sys.pending_trans$ to?当前数据库用户;?

grant select on sys.dba_2pc_pending to?当前数据库用户;?

grant execute on sys.dbms_system to?当前数据库用户;?

?

?

?

到这里使用Spring的JTA分布式事务管理就搞定了。


热点排行