两个数据库间的事务问题

问大家个问题,A,B两个数据库,A中有A2表,B中有B1,B2表,现在要把A2表中取出某个数据,B1表中取出某个数据,然后把两者插入B2表,写事务时用JDBC是这样,大家看下有无问题?
try
{
connA.setautocommit(falase);//cona为A的数据库连接
connB.setautocommit(falase);/connb为B的数据库连接
//读取A2表中的数据的sql,如
a2statement.execute(sql);
//读取b1表的数据的sql,如
b1statement.execute(sql);
//插入b2表数据的sql
conna.commit();
connb.commit();
conna.close();
connb.close();
conna.setautocomiit(true);
connb.setauotocomiit(true);
}
catch { conna.rollback;connb.rollback}

使用JTA,需要定义在tomcat中用JNDI定义一个XA的datasource.另外一种解决办法是使用开源软件实现比如jotm或者atomikos.具体你可以去相应的网站看看

JDBC事务控制的局限性在一个数据库连接内,跨越多个数据库建议使用JTA控制事务,你可以看下这篇文章http://ws01180687.iteye.com/blog/399058