在使用Spring的DataSourceTransactionManager过程中,系统发生第一次错误并进行回滚,可是已经提交的数据没有回滚,从第二次开始,系统发生错误后回滚就正常了。
[code]
//对Spring的事务简单封装,使用DataSourceUtil获得和释放链接。
TransactionManager manager = new TransactionManager ();
try{
manager.begin();
//添加用户
db.execute("insert into USER(id, name) values(id, name)");
//添加用户地址(填写地址过长,出错)
db.execute("insert into ADDRESS(id, address) values(id, address)");
manager.commit();
}catch(Exception ex){
manager.rollback();
}
[/code]
现象:
第一次提交失败时,系统回滚,但是用户信息已经插入。
第二次进行提交时,系统回滚,用户信息也被回滚。
测试环境:
Tomcat5 + C3P0(连接池) + DB2
Tomcat5 + C3P0(连接池) + MySQL
Weblogic + JNDI + DB2
现象都一致。
不知道大家是否碰到这样的问题?不知道如何解决?是否Spring的Bug?
[code]
//对Spring的事务简单封装,使用DataSourceUtil获得和释放链接。
TransactionManager manager = new TransactionManager ();
try{
manager.begin();
//添加用户
db.execute("insert into USER(id, name) values(id, name)");
//添加用户地址(填写地址过长,出错)
db.execute("insert into ADDRESS(id, address) values(id, address)");
manager.commit();
}catch(Exception ex){
manager.rollback();
}
[/code]
现象:
第一次提交失败时,系统回滚,但是用户信息已经插入。
第二次进行提交时,系统回滚,用户信息也被回滚。
测试环境:
Tomcat5 + C3P0(连接池) + DB2
Tomcat5 + C3P0(连接池) + MySQL
Weblogic + JNDI + DB2
现象都一致。
不知道大家是否碰到这样的问题?不知道如何解决?是否Spring的Bug?