请教EJB中的事务机制是否对文件读写起作用?//伪代码transaction.begin();write_log_to_file();
rollback();transaction.end();请问这段代码执行rollback后,log信息是否被写入文件,如果被写入文件怎样才能像数据库事务那样实现回滚?

解决方案 »

  1.   

    InitialContext context = new InitialContext();UserTransaction ut = context.lookup("UserTransaction");try {
      ut.begin();
     
      //对任何DB操作,对文件操作  ut.commit();
    }catch(Exception e) {
       ut.rollback();
    }
    JTA全局事务对任何持久性操作都回滚!
      

  2.   


    JTA全局事务对文件操作回滚起作用,内部实现是两阶段提交协议,用日志记录操作!
      

  3.   

    文件操作当然不能回滚了,因为文件系统也没有事务这一说法。EJB 中的事务只能处理数据库、JMS 中的事务。
      

  4.   

    如果你的函数是写日志文件的话,个人觉得可能被事务控制,毕竟事务的概念来自于数据库,只有操作数据库,才会有事务一说,呵呵,不过确实没有这么做。另外,如果你用了ejb,其实可以考虑容器来实现事务控制,jboss等ejb容器提供了很好的事务控制机制,只要你的代码层次结构合理,应该是很好用的哈,呵呵