请教EJB中的事务机制是否对文件读写起作用?

blossom007cn 2009-05-17 08:43:09
请教EJB中的事务机制是否对文件读写起作用?

//伪代码

transaction.begin();

write_log_to_file();
rollback();

transaction.end();

请问这段代码执行rollback后,log信息是否被写入文件,如果被写入文件怎样才能像数据库事务那样实现回滚?
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuemin_mcl 2009-08-16
  • 打赏
  • 举报
回复
如果你的函数是写日志文件的话,个人觉得可能被事务控制,毕竟事务的概念来自于数据库,只有操作数据库,才会有事务一说,呵呵,不过确实没有这么做。另外,如果你用了ejb,其实可以考虑容器来实现事务控制,jboss等ejb容器提供了很好的事务控制机制,只要你的代码层次结构合理,应该是很好用的哈,呵呵
  • 打赏
  • 举报
回复
文件操作当然不能回滚了,因为文件系统也没有事务这一说法。

EJB 中的事务只能处理数据库、JMS 中的事务。
woming66 2009-08-15
  • 打赏
  • 举报
回复
不好意思,刚才试验了一下,对文件的操作还是不能回滚!
woming66 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zl3450341 的回复:]
Java code
单纯的文件是不支持的

一般是操作数据库才起作用的


[/Quote]

JTA全局事务对文件操作回滚起作用,内部实现是两阶段提交协议,用日志记录操作!
pmlxp 2009-08-15
  • 打赏
  • 举报
回复
学习
zl3450341 2009-08-14
  • 打赏
  • 举报
回复

单纯的文件是不支持的


一般是操作数据库才起作用的

woming66 2009-08-13
  • 打赏
  • 举报
回复
InitialContext context = new InitialContext();

UserTransaction ut = context.lookup("UserTransaction");

try {
ut.begin();

//对任何DB操作,对文件操作

ut.commit();
}catch(Exception e) {
ut.rollback();
}


JTA全局事务对任何持久性操作都回滚!
老紫竹 2009-08-13
  • 打赏
  • 举报
回复
文件没有事务这个东西,事务,目前只有数据库等支持事务的才有,单纯的文件是不支持的。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧