JBoss JTA的使用心得

2008-02-23 09:10:44来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

前些日子,农总行的客户有个需求,需要跨Sybase ASE和Sybase IQ两个数据库操作,并且保证事务的完整性,而且客户不希望通过数据库层来保证事务,只希望在代码层控制。
这样的需求可能第一反应就是采用JTA,及XA事务(及通常所说的两阶段提交)支持。但是,这其中有一个数据库Sybase IQ,这是一个“数据仓库型”的数据库。Sybase中国区的技术支持也不能肯定是否IQ支持XA事务,因为IQ跨数据库事务操作在国内还没有过。
于是,只得做了个技术预研。说真的,虽然搞了这么多年Java,还真没有碰到过跨数据库事务的项目,这次机会难得,好好研究一把。
本机暂时没有Sybase ASE,只能拿SQLServer替代一下。测试环境如下:
JTA Server: Jboss4.0.4
DataBase One: MS SQLServer 2000
DataBase Two:Sybase IQ 12.6
OS: Windows2003
JDBC Driver for sqlserver: jTDS1.2
JDBC Driver for Sybase IQ: jConnect-6_05
首先在Jboss中配置XADataSource。在 jboss404\docs\examples\jca 目录下,只有MSSQL-xa-ds.XMLsybase-ds.xml,没有sybase-xa-ds.xml样例。于是自己写了一个sybase-xa-ds.xml。—— 后来发现这是“错误的做法”,只使用sybase-ds.xml即可了。
mssql-xa-ds.xml内容如下:
<datasources>
<xa-datasource>
<jndi-name>MSSQLXADS</jndi-name>
<track-connection-by-tx/>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>net.sourceforge.jtds.jdbcx.JtdsDataSource</xa-datasource-class>
<xa-datasource-property name="ServerName">localhost</xa-datasource-property>
<xa-datasource-property name="DatabaseName">foxtest</xa-datasource-property>
<user-name>sa</user-name>
<password>sa</password>
<

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:搜索引擎之中文分词实现(java版)

下一篇:关于JAVA学习的书籍介绍