事务中处理回滚

问题:更新两个不同厂商的数据库(如informix和oracle),必须同时更新成功,或者其中一个失败时都要回滚。
怎么解决?

最傻的办法就是这样了...
[code="java"]
......
try{
//改变自动提交方式.
connOracle.setAutoCommit(false);
connInformix.setAutoCommit(false);

stmt = connOracle.createStatement();
stmt = connInformix.createStatement();

stmt.executeUpdate("UPDATE ... SET ...");
stmt.executeUpdate("UPDATE ... SET ...");

connOracle.commit(); 
connInformix.commit();
connOracle.close();
connInformix.close();

}catch(Exceptin ex){
//出错则一起回滚
connOracle.rollback();
connInfomix.rollback();
connOracle.close();
connInformix.close();
ex.printStackTrace();
}
[/code]

还有个办法就是使用JTA事务..不过在下不才...目前还不会.楼主可以多参考些这方面的资料..

多数据源,肯定只能是JTA了. Javaeye中讲JTA的帖子和Blog蛮多的.

其实也不用那么复杂,起两个session分别处理两个数据源,如果有一个session抛出异常了,那么就把两个session都会滚。