问题:更新两个不同厂商的数据库(如informix和oracle),必须同时更新成功,或者其中一个失败时都要回滚。
怎么解决?
事务中处理回滚
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- iteye_17163 2008-06-19 10:43关注
最傻的办法就是这样了...
[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事务..不过在下不才...目前还不会.楼主可以多参考些这方面的资料..
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报