社区
Java EE
帖子详情
提个问题,关于session bean事务处理的
baitianhai
2003-04-10 08:30:14
如果我把对两个不同的数据库操作放在session bean 的事务处理,是不是只有同时操作成功,才存到数据库中的,失败的话,就都不保存那?
还有一个问题,我的信誉份长了,怎么才能知道是那个贴子 成为FAQ了那,(前提我知道是在那个论坛上的)
...全文
117
9
打赏
收藏
提个问题,关于session bean事务处理的
如果我把对两个不同的数据库操作放在session bean 的事务处理,是不是只有同时操作成功,才存到数据库中的,失败的话,就都不保存那? 还有一个问题,我的信誉份长了,怎么才能知道是那个贴子 成为FAQ了那,(前提我知道是在那个论坛上的)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
freedy_hu
2003-08-14
打赏
举报
回复
up
proZeus
2003-04-10
打赏
举报
回复
呵呵,看我的信誉分……都没长过,我只是觉得在信誉分变化纪录中可以查
如果具体哪个帖子查不到,应该是csdn不提供这功能吧,问斑竹咯
baitianhai
2003-04-10
打赏
举报
回复
能详细说说吗?
我的信誉分变化纪录中 能看到变化,可是不知道是那个贴子的
proZeus
2003-04-10
打赏
举报
回复
我觉得是。
还要看数据源的类型吧,wls里面Tx Data Source和Data Source就不同,前者支持事务
关于信誉分,在我的信誉分变化纪录中查不到吗?
baitianhai
2003-04-10
打赏
举报
回复
Entity Bean的事务处理也是一样的吗?
MyXin
2003-04-10
打赏
举报
回复
什么是事务?
为了完成对数据的操作,企业应用经常要求并发访问在多个构件之间共享的数据。这些应用在下列条件下应该维护数据的完整性(由应用的商务规则来定义):
分布式访问一个单独的数据资源,以及
从一个单独的应用构件访问分布式资源。
在这种情况,可能要求在(分布式)资源上的一组操作被当作一个工作单元(unit)。在一个工作单元中, 操作的所有部分一起成功或失败并恢复。在下面的情况下这个问题更加复杂:
通过一组分布式的、访问多个资源的数据的构件实现一个工作单元,和/或
部分操作是被顺序执行的或在要求协调和/或同步的并行线程中。
在所有情况下, 都要求应用维护一个工作单元的成功或失败。在失败的情况下,所有资源要把数据状态返回到以前的状态 (比如说,工作单元开始前的状态)。
事务的概念和和事务管理器(或者一个事务处理服务)在一个工作单元中的维护数据完整性,这就简化了这样的企业级别分布式应用的构造。
一个事务是有下列属性的一个工作单元:
原子性(ATOMICITY): 一个事务要被完全的无二义性的做完或撤消。在任何操作出现一个错误的情况下,构成事务的所有操作的效果必须被撤消,数据应被回滚到以前的状态。
一致性(CONSISTENCY): 一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成了一个成功的事务时,数据应处于一致的状态。换句话说,一个事务应该把系统从一个一致状态转换到另一个一致状态。举个例子,在关系数据库的情况下, 一个一致的事务将保护定义在数据上的所有完整性约束。
隔离性(ISOLATION): 在同一个环境中可能有多个事务并发执行,而每个事务都应表现为独立执行。串行的执行一系列事务的效果应该同于并发的执行它们。这要求两件事:
在一个事务执行过程中,数据的中间的(可能不一致)状态不应该被暴露给所有的其他事务。
两个并发的事务应该不能操作同一项数据。数据库管理系统通常使用锁来实现这个特征。
持久性(DURABILITY): 一个被完成的事务的效果应该是持久的。
这些属性叫做 ACID 属性,担保一个事务是永远不会不完整,数据永远不会不一致,并发事务是独立的,一个事务的效果是持久的。
MyXin
2003-04-10
打赏
举报
回复
在J2EE中的EJB是靠容器管理事务.一个事务处理的属性控制它本身的范围。有:Required,RequiresNew,Mandatory,NotSupported,Supports,Never。
1、Required:当客户端运行一个事务处理并调用EJB的一个方法,这个方法执行客户端的事务处理;当客户端没有启动一个事务处理,则EJB容器在执行这个方法之前启动一个新的事务处理.
2、RequiresNew:当客户端运行一个事务处理并调用EJB的一个方法时,容器管理器做如下操作:
(1) 悬挂客户端的事务处理;
(2) 开始一个新的事务处理;
(3) 调用方法;
(4) 当方法结束,恢复客户端的事物处理.
当客户端没有启动一个事务处理,容器管理器在执行这个方法之前启动一个新的事务处理.
3、Mandatory: 当客户端运行一个事务处理并调用EJB的一个方法,这个方法在客户端的事务处理范围内被执行; 当客户端没有启动一个事务处理,容器管理器将会抛错(TransactionRequiredException);
4、NotSupported: 当客户端运行一个事务处理并调用EJB的一个方法,容器管理器在调用方法之前终止客户端的事务处理,当方法执行完,再恢复客户端的事务处理; 当客户端没有启动一个事务处理,容器管理器在调用方法时不启动事务处理.
5、Supports: 当客户端运行一个事务处理并调用EJB的一个方法,在运行方法时执行客户端的事务处理; 当客户端没有启动一个事务处理,容器管理器在调用方法时不启动事务处理.
6、Never: 当客户端运行一个事务处理并调用EJB的一个方法,容器管理器将抛出一个错误(RemoteException); 当客户端没有启动一个事务处理,容器管理器在调用方法时不启动事务处理.
可以指定个别方法的事务处理属性或整个EJB的事务处理属性.当你指定方法的某个事务处理的属性和另外的EJB的事务处理属性时,方法的事务处理属性优先.
当事务处理失败时,有两种方式恢复一个容器管理器的事务处理.第一,如果系统抛出一个错误,容器管理器自动恢复;第二,调用setRollbackOnly方法,命令容器管理器恢复事务处理.
J2EE容器管理器控制除了JDBC以外的所有的EJB事务处理.它可以使一个EJB在一个事务处理时更新多个数据库.
peterretep
2003-04-10
打赏
举报
回复
最好使用TX DataSource,他支持两阶段事务提交。所以应该是同时成功,同时失败的。不过我没有试过,你可以试一试啊
baitianhai
2003-04-10
打赏
举报
回复
老兄 能不能在详细说说 EJB的事务处理那?
J2EE面试题集锦(附答案)
- **
Session
Bea
n**:主要用于业务逻辑处理,分为Stateful
Session
Bea
n(有状态会话
bea
n)和Stateless
Session
Bea
n(无状态会话
bea
n)。Stateful
Session
Bea
n能记住客户端的状态,每个客户端可能对应一个独立的...
基于SSH商场管理系统
SSH框架中的每个组件对应于不同的层次,Struts2处理表现层,Spring负责业务逻辑层,Hibernate则工作在数据访问层。 综上所述,基于SSH的商场管理系统充分利用了SSH框架的优势,实现了高效、可扩展的后台管理功能,...
会话EJB系列(四)
Session
Bea
n事务管理
Session
Bea
n中事务管理,分为两种:容器管理事务(CMT)和
Bea
n管理事务(BMT) CMT(默认):容器负责决定事务的边界:方法开始就是事务开始,方法结束就是事务结束。 BMT:事务边界由开发人员灵活决定(事务开始...
【进阶EJB】深入探讨三种
Bea
n(一)——
Session
Bea
n
Session
Bea
n是用于实现业务逻辑的,每当客户发出一个请求的时候,容器就会选择一个
Session
Bea
n来为客户端服务,客户端通过调用
Session
Bea
n的方法来访问部署在服务器上的应用程序.
Session
Bea
n通过完成客户端的...
Session
Bea
n(会话
Bea
n)
Session
Bea
n的种类:分为有状态的会话
Bea
n和无状态的会话
Bea
n(Stateful
Session
Bea
n和Stateless
Session
Bea
n)
Session
Bea
n的作用:
Session
Bea
n是用来实现业务逻辑的,
Session
Bea
n可以直接操作数据库,通过...
Java EE
67,549
社区成员
225,860
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章