事务中处理回滚

问题描述

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

解决方案

最傻的办法就是这样了... ......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(); }还有个办法就是使用JTA事务..不过在下不才...目前还不会.楼主可以多参考些这方面的资料..
解决方案二:
其实也不用那么复杂,起两个session分别处理两个数据源,如果有一个session抛出异常了,那么就把两个session都会滚。
解决方案三:
多数据源,肯定只能是JTA了. Javaeye中讲JTA的帖子和Blog蛮多的.

时间: 2024-10-22 21:43:17

事务中处理回滚的相关文章

spring事务回滚只能配在service层吗。为什么我想在Test中添加事务不能进行回滚呢

问题描述 spring事务回滚只能配在service层吗.为什么我想在Test中添加事务不能进行回滚呢 <tx:advice id="txAdvice2" transaction-manager="txManager"> <tx:attributes> <tx:method name="inserttwo*" propagation="REQUIRED"/> </tx:attribut

sping hibernate 事务-spring注解方式事务控制没有回滚

问题描述 spring注解方式事务控制没有回滚 项目中使用到了hibernate以及spring事务控制,在service层增加事务控制但是遇到异常没有回滚. 代码如下: 配置文件 <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfr

spring的事务管理 批量回滚

问题描述 spring的事务管理 批量回滚 如果我有5条SQL语句 然后 第一第二条都没问题 第三条出问题了 需要全部回滚,请问下 Srping本身的那个事务管理器能达到吗 用注解拦截器的方法实现 解决方案 Spring的事务管理与回滚Spring事务管理-回滚spring事务管理 junit回滚 解决方案二: 放在同一个事务里面,异常就会都回滚

spring-Spring配置事务后不回滚,麻烦各位大侠帮小弟看看

问题描述 Spring配置事务后不回滚,麻烦各位大侠帮小弟看看 ****Spring 配置文件:**** <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close"> <!-- 注册驱动配置 --> <property name="driver

spring 事务管理 手动回滚策略

问题描述 如果我不用spring的事务代理机制,直接在service代码中进行事务的提交或者回滚处理,那么一般是这样的处理逻辑-->主要有2点:即1:事务流程中,某一节点的数据(正常返回)遇到某值时,进行回滚,执行结果中说明情况.2:事务流程中,try catch 所有的代码-->保证遇到运行时异常,或者error的时候,进行回滚现在要用spring的事务管理了,导致在处理提到的第一个情况的时候有个问题,不知道如何解决就是spring所管理到的业务代码方法,必须要抛出指定异常,才可以回滚那么,

oracle中系统回滚段坏块恢复记录

数据库启动报错  代码如下 复制代码 SQL> startup mount pfile='c:\pfile.txt' ORACLE 例程已经启动.    代码如下 复制代码 Total System Global Area  452984832 bytes Fixed Size                  1291120 bytes Variable Size             201329808 bytes Database Buffers          243269632 b

简单谈谈Git中的回滚操作_相关技巧

首先介绍下场景 首先,一定要想清楚,自己想干什么. 找redis源码作为例子,查看所在的分支git branch 3.0 3.2 * unstable 取前5条commit看看 git log --pretty=format:"%h - %an, %ar : %s" -5 e9d861e - antirez, 27 hours ago : Clear child data when opening the pipes. e565632 - antirez, 27 hours ago :

详解Java的JDBC API中事务的提交和回滚_java

如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关闭自动提交和管理自己的事务: 为了提高性能 为了保持业务流程的完整性 使用分布式事务 若要控制事务,以及何时更改应用到数据库.它把单个SQL语句或一组SQL语句作为一个逻辑单元,而且如果任何语句失败,整个事务失败. 若要启用,而不是JDBC驱动程序默认使用auto-commit模式手动事务支持,使用Connection对象的的setAutoComm

Spring 自动代理事务 中碰到了事务无法回滚的问题

问题描述 我是一个spring 学习的初手, 在学习spring in action这本书的 事务自动代理 章节时,按照所说的方式,我先配置了一个自动代理和事务属性源advisor,如下: <bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> </bean> <bean id=&qu