论坛首页 Java版 企业应用

关于XA使用遇到的问题

浏览 717 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-10-17 关键字: xa
项目中要整个EJB,供别的系统调用

本来不是采用容器管理事务,采用bean管理事务,想提交就提交,想回滚就回滚,
但是这样会给调用方带来这样一个问题:如果调用方调用ejb并且处理成功,但是在调用方接下来处理中出现异常时就没有办法回滚 这个ejb的事务。


接下来就想采用容器管理,采用xa数据源,这样的话上面的问题就可以解决,但是另一个问题又出来,就是在这个提供的ejb中,我们想保存调用的日志记录:传送了哪些数据,处理出错报的异常是什么,成功日志。
这样的话,因为采用容器管理,一提交或回滚就会出错,所以就只能把事务交给调用方来提交或回滚,这样的话,我们如果处理出错了,调用方就会把事务回滚,一旦事务回滚,所有数据库操作就会回滚,这样我们原先想保存错误日志的功能就失效了。

所以目的是想:采用xa事务管理,而且又想增加日志,到底能否这样实现呢???

。。。对于日志,只想保存到数据库中,不想采用文件保存。
   
时间:2007-10-18
根据个人经验,做一个LogEJB,这个EJB用BEAN管理的事物,也就是getUserTransaction,然后用他来作DB的操作,把他嵌入在你的容器管理的EJB中进行操作,相互事物之间不影响。

共同学习
   
0 请登录后投票
时间:2007-10-18
kenees 写道
根据个人经验,做一个LogEJB,这个EJB用BEAN管理的事物,也就是getUserTransaction,然后用他来作DB的操作,把他嵌入在你的容器管理的EJB中进行操作,相互事物之间不影响。

共同学习
这点倒是没有想到,
非常感谢,我试完后再来回复下。
   
0 请登录后投票
时间:2007-10-21
半夜花了些时间,用了两台机子,两台机子都装了websphere跟oracle,测试了下,
通过,上面方案可行,谢谢kenees 帮忙
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐