但这不是一个connection的事务,而是两connection先后调用的两个事务,
在前一个commit后,后一个失败的话,怎样能对前一个已经commit的事务做rollback呢?

解决方案 »

  1.   

    首先我想这已经不是一个事务了,是不是应该认为是两个原子操作呢。
    如果一定要保证是一个原子操作的话,其中一个可以实现的方法是:事务服务器保存数据操作的堆栈,这样在理论上可以通过反向操作rollback所有的数据库更改。
      

  2.   

    connection已经commit了的话,就不能再rollback了吧,个人愚见
      

  3.   

    commit了以后确实不能rollback了,如果第一个connection commit成功了,而第二个不成功,那么想对第一个进行rollback操作就无效了
      

  4.   

    在第一个commit前,调用第二个存储过程好了
      

  5.   

    多个SQL语句使用同一个Statement吗?
      

  6.   

    Brain(无缺公子) 问题就是不用jta怎么做,或者jta是怎样实现的
    blackcourser(黑骏马) 两个不同的connection生成的两个statement