事务是容器管理的..
一般管理一个事务是按一个方法..
也就是你的sessionbean里的方法,从执行到结束是一个事务...
也就是如果你的方法出错,容器自动给你回滚..
不用你操心的 ...以上只是看资料,没有试验过...
还请楼主自己试验一下最好 :) ------------------------------------------------------
           我们还年轻牛奶会有的奶牛也会有的 
             可天天在 csdn 混这些会有吗 ??

解决方案 »

  1.   

    按上面所说,也就是需要你的调用几个cmp,那些create,update...操作都定义到sessionbean里的一个方法里,容器就会给你管理事务的了!
     ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  2.   

    我的配置文件里面写的是
    <transaction-type>Bean</transaction-type>
    是不是把这个session bean设定为事务型了?
    我看有些地方说要设置为<trans-attribute>Required</trans-attribute>
    我用的开发工具是ibm 的 wsad5
      

  3.   

    如果想在一个session bean的方法A中,调用几个实体bean的方法,
    例如:A()调用到多个实体bean的create及remove等方法,
    并且希望这些实体bean的方法都在一个事物中运行。那么部署时,
    可以将session bean的A方法的事务属性设置为required或required new,
    同时要保证A中调用到的那些实体bean的方法的事务属性为required(一定不能是required new)。
      

  4.   


    注意!!!!!!!!!!!!!!容器不会帮你自动回滚的,即使你用的是容器管理的事务!!!!首先,如果你的SESSIONBEAN配置的是容器管理的事务,那么,为了回滚,你要写:
    try{
      create
      remove
      ...
    }catch(..){
      ctx.setRollbackOnly();
      ...
    }
    这样,就回滚了第二中方法,你用BEAN管理的事物方式
    这时候,你要用UserTracaction:
    ut=UserTransaction) ctx.lookup( "java:comp/UserTransaction ");
    try{
    ut.begin();
      create
      remove
      ..
    ut.commit();
    }catch(..){
      ut.rollback();
    }
      

  5.   

    你的配置是:<transaction-type>Bean</transaction-type>
    这表明用的是BEAN管理事务,所以你要用我上面说的第二中方法
      

  6.   

    http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39043233,00.htm
    http://www.yesky.com/20030325/1659136.shtml
      

  7.   

    有这个必要吗?这个问题好像没有大家说得那么复杂,搂主说的是操作两个cmp。
    搂主只需要在你的session bean里面的方法里面
    void method1(...) {
     cmp1 = cmpHome1.create();
     cmp2 = cmpHome2.create();
     cmp1.remove();
     cmp2.remove();
    }
    把你对两个cmp进行操作都放到同一个方法里面,方法正常return事务提交。否则,在任何你想回滚事务的地方throw new Exception()就一切ok.
    bmp没有试过,应该也差不多。
    实际情况时:每一个session bean方法的开始,容器缺省的开始一个事务,在方法的退出时提交,抛出异常时回滚。