public void excHqlTest(String tblName, Object vo1, String tblName2 , Object vo2) {
        try {
            bo.excHqlTest(tblName2, vo2);//第一个数据库操作
        }
        catch (Exception ex) {
            
        }
        try {
            bo.excHqlTest(tblName, vo1);//第二个数据库操作
        }
        catch (Exception ex) {
           
        }
    }

解决方案 »

  1.   

    朋友,看看j2ee文档。你的问题解决是:catch(Exception ex)都改为catch(EJBException ex)就可以了。给分吧
      

  2.   

    catch(Exception ex) 
    catch(EJBException ex)
    区分~
      

  3.   

    你就不要try...catch了,让他抛出来好了。
    应该这样理解,第一个方法抛出异常,那程序就应该中断了,第二个方法应该执行不到了。
    如果第1个方法没有抛异常,而第2个方法抛异常,那第一个方法中的操作就应该回滚掉。
    现在你都catch住了,假如第2个方法抛异常,但是被你catch住了,对第1个方法来说,就像没发生过异常一样,一直顺利执行到excHqlTest{...}方法后一个"}"结束咯。
      

  4.   

    darkattack(居士):
        这是最早试过的,不行!
      

  5.   

    容器管理的事务,不是在任何exception下都rollback,这需要容器来判断,当然你的这种情况,我认为是应该rollback的,既然他们是同一个原子操作,你为什么不把他放如同一个try{}catch{}中呢,还有就是我认为如果你采用的是CMT,那么你就不用try{}catch{}块了啊,应为你那两步都是对DB操作,那么throw Exception,容器会自动识别出它是需要rollback的