设计EJB中的事务会话。(事务失败后的处理)
2007-07-27 11:54
218 查看
事务执行期间,有可能事务回滚。
事务失败后该如何收拾残局?
一、终止业务过程。
二、可以重做事务若干次。
对于无状态会话Bean,放弃业务过程是一件很简单的事情,我们只需要将异常抛给客户。
但对于有状态SessionBean,事情变得复杂了,因为它持有会话状态。它需要智能(即重复事务若干次)的取消所做的工作,就需要被告知事务状态。实现SessionSynchronization接口就可获取到事务状态。
只有在使用了有状态会话Bean时,而且启用了容器事务管理(CMT),开发者才需要实现SessionSynchronization接口。如果EJB组件采用Bean管理事务(BMT),此时事务在begin()、commit()、rollback()语句的掌控中,因此开发者没必要去实现这一接口。
事务失败后该如何收拾残局?
一、终止业务过程。
二、可以重做事务若干次。
对于无状态会话Bean,放弃业务过程是一件很简单的事情,我们只需要将异常抛给客户。
但对于有状态SessionBean,事情变得复杂了,因为它持有会话状态。它需要智能(即重复事务若干次)的取消所做的工作,就需要被告知事务状态。实现SessionSynchronization接口就可获取到事务状态。
只有在使用了有状态会话Bean时,而且启用了容器事务管理(CMT),开发者才需要实现SessionSynchronization接口。如果EJB组件采用Bean管理事务(BMT),此时事务在begin()、commit()、rollback()语句的掌控中,因此开发者没必要去实现这一接口。
相关文章推荐
- WebSphere Application Server ND V7中如何处理容器管理的数据库事务中会话 Bean 的连接异常?
- 一个长事务引起的血案——Informix 长事务回滚失败引起的阻塞故障处理
- ro多层的事务处理失败的困惑
- 不允许启动新事务,因为有其他线程正在该会话中运行(ef并发错误处理之一)
- [异步][事务][流程][设计]同步当场处理并返回处理结果,异步后怎样返回. 怎样解决?
- CodeIgniter框架数据库事务处理的设计缺陷和解决方案
- 机房收费系统完美设计——事务处理vs三层架构2
- JAVA设计模式之事务处理
- EJB2.0的事务处理(待续)
- JAVA设计模式-事务处理
- 设计模式之事务处理
- EJB事务处理
- [导入]分布式事务处理设计
- JD订单去重的问题:谈分布式事务处理中领域驱动设计的原则
- 数据库引擎选择错误导致事务处理失败的问题
- EJB2.0的事务处理(待续)
- 执行触发器失败 :-6519:ORA-06519: 检测到活动的自治事务处理, 已经回退
- OBIEE 11g [nQSError: 37005] 事务处理更新失败 解决办法
- ORACLE DML LOCK时找出对应SESSION正在执行的SQL语句(ORA-12841,无法变更事务处理中的会话并行 DML 状态)
- 用户、会话及事务控制----------事务处理控制