2007-10-17
关于XA使用遇到的问题
关键字: xa
项目中要整个EJB,供别的系统调用
本来不是采用容器管理事务,采用bean管理事务,想提交就提交,想回滚就回滚,
但是这样会给调用方带来这样一个问题:如果调用方调用ejb并且处理成功,但是在调用方接下来处理中出现异常时就没有办法回滚 这个ejb的事务。
接下来就想采用容器管理,采用xa数据源,这样的话上面的问题就可以解决,但是另一个问题又出来,就是在这个提供的ejb中,我们想保存调用的日志记录:传送了哪些数据,处理出错报的异常是什么,成功日志。
这样的话,因为采用容器管理,一提交或回滚就会出错,所以就只能把事务交给调用方来提交或回滚,这样的话,我们如果处理出错了,调用方就会把事务回滚,一旦事务回滚,所有数据库操作就会回滚,这样我们原先想保存错误日志的功能就失效了。
所以目的是想:采用xa事务管理,而且又想增加日志,到底能否这样实现呢???
。。。对于日志,只想保存到数据库中,不想采用文件保存。
本来不是采用容器管理事务,采用bean管理事务,想提交就提交,想回滚就回滚,
但是这样会给调用方带来这样一个问题:如果调用方调用ejb并且处理成功,但是在调用方接下来处理中出现异常时就没有办法回滚 这个ejb的事务。
接下来就想采用容器管理,采用xa数据源,这样的话上面的问题就可以解决,但是另一个问题又出来,就是在这个提供的ejb中,我们想保存调用的日志记录:传送了哪些数据,处理出错报的异常是什么,成功日志。
这样的话,因为采用容器管理,一提交或回滚就会出错,所以就只能把事务交给调用方来提交或回滚,这样的话,我们如果处理出错了,调用方就会把事务回滚,一旦事务回滚,所有数据库操作就会回滚,这样我们原先想保存错误日志的功能就失效了。
所以目的是想:采用xa事务管理,而且又想增加日志,到底能否这样实现呢???
。。。对于日志,只想保存到数据库中,不想采用文件保存。
评论
qiuyuanshan
2007-10-21
半夜花了些时间,用了两台机子,两台机子都装了websphere跟oracle,测试了下,
通过,上面方案可行,谢谢kenees 帮忙
通过,上面方案可行,谢谢kenees 帮忙
qiuyuanshan
2007-10-18
kenees 写道
根据个人经验,做一个LogEJB,这个EJB用BEAN管理的事物,也就是getUserTransaction,然后用他来作DB的操作,把他嵌入在你的容器管理的EJB中进行操作,相互事物之间不影响。
共同学习
这点倒是没有想到,
共同学习
非常感谢,我试完后再来回复下。
kenees
2007-10-18
根据个人经验,做一个LogEJB,这个EJB用BEAN管理的事物,也就是getUserTransaction,然后用他来作DB的操作,把他嵌入在你的容器管理的EJB中进行操作,相互事物之间不影响。
共同学习
共同学习
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 32437 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
PreparedStatement防注入
上面说的是只是针对用jdbc运行sql时怕出错的一种解决方式, 针对楼上说的, ...
-- by qiuyuanshan -
PreparedStatement防注入
确定不需要再进行特殊字符处理? 如果用户输入类似<td></td>这 ...
-- by hilliate -
WEB移植时可能出现的问题
不好意思,就碰到一种情况,还没碰到第二种情况。。。
-- by qiuyuanshan -
WEB移植时可能出现的问题
二是什么,我现在也碰到这个问题啊,我已经用1.4的编译了,还是不行啊
-- by sunqi -
websphere下部署servlet ...
是为了热布署时不停机。。。。
-- by 抛出异常的爱






评论排行榜