目前有一个北美外包项目即将启动,关于金融行业。采用EJB2开发,各技术环节也都基本确认,唯独在事务管理方面产生了一些分歧和疑惑,查阅了很多资料不得其解。思来想去还是来发个帖子寻求一下达人的帮助。

注:数据库操作直接采用JDBC编程,没有用到具体的框架。

  问题有二

  一、EJB事务配置是由Container来管理,那么在DAO层发生异常的时候是否还需要程序员处理事务,也就是说是否还需要自己操作Connection的回滚。

  二、EJB事务配置同样是由Container来管理,是否还需要在EJB中操作SessionContext.setRollbackOnly(),或者说这样操存在什么样的好处或者弊端。


  先谢谢大家了。  
 
评论
daquan198163 2007-11-19
一、采用容器管理数据源——即JNDI数据源,自然由容器负责回滚。DAO层发生异常的时候直接抛出给EJB即可
二、在EJB中,如果捕获DAO抛出的异常,有两种选择
1、处理该异常,然后调用SessionContext.setRollbackOnly()回滚事务
2、把该异常转换成RuntimeException继续抛出,容器负责回滚事务
lunch 2007-11-19
:)
给指条明路啊
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

lunch
搜索本博客
我的相册
1e355ce5-f4cc-3beb-919d-2973fe8ce41b-thumb
ectable
共 4 张
最近加入圈子
存档
最新评论