EJB事务属性的六个关键值

开发 后端
本文向您介绍EJB事物属性中的六个关键值,包括Required、RequiresNew、Mandatory、NotSupported等。

EJB事务属性可以是如下几个值之一:

◆Required

◆RequiresNew

◆Mandatory

◆NotSupported

◆Supports

◆Never

1、Required

如果客户端正运行在某个EJB事务中运行,且调用了EJB中的方法,则该方法在客户端的EJB事务中运行。如果客户端没有与某个EJB事务相关联,则容器在运行方法前先启动一个新EJB事务。Required属性适合绝大多数EJB事务,建议把它设置成默认的,至少在开发阶段。EJB事务属性是声明式的,后期也可以很容易的修改。

2、RequiresNew

如果客户端运行在某个EJB事务中,并且调用了EJB中的方法,则容器将采用如下操作:

(1) 挂起客户端EJB事务

(2) 启动一个新EJB事务

(3) 把调用委派给方法

(4) 方法执行完毕之后,回复客户端EJB事务

如果客户端没有与某个EJB事务相关联,则容器在运行方法前先启动一个新EJB事务。如果确保方法始终在一个新EJB事务中运行,应该使用EJB事物属性中的RequiresNew属性。

3、Mandatory

如果客户端运行在某个EJB事务中且调用了EJB中的方法,则该方法运行在客户端EJB事务中。如果客户端没有与某个EJB事务相关联,则容器抛出TransactionRequiredException。如果EJB中的方法必须使用客户端的EJB事务,则应该使用EJB事物属性中的Mandatory属性。

4、NotSupported

如果客户端在某个EJB事务中运行且调用了EJB中的方法,则容器先挂起客户端EJB事务,调用方法结束之后回复客户端EJB事务。如果客户端没有与某个EJB事务相关联,则容器在运行方法前不启动EJB事务.对于不需要EJB事务的方法,可以考虑该属性。EJB事务需要一定的开销,EJB事物属性中的NotSupported属性可以提高性能。

5、Supports

如果客户端运行在某个EJB事务中且调用了EJB中的方法,则该方法运行在客户端的EJB事务中。如果客户端没有与某个EJB事务关联,则容器运行方法前不启动新的EJB事务。

6、Never

如果客户端运行在某个EJB事务中且调用了EJB中的方法,则容器抛出RemoteException异常。如果客户端没有与某个EJB事务关联,则容器运行方法之前不启动新的EJB事务。

 

【编辑推荐】

  1. 浅谈如何将EJB部署在Jboss下
  2. EJB和Spring全面比较
  3. 什么时候在EJB系统中使用XML
  4. 提高EJB性能十大技巧
  5. EJB分布式对象基础篇
责任编辑:佚名 来源: 网络转载
相关推荐

2012-06-07 09:18:16

ibmdw

2009-06-12 09:49:25

EJB事务属性EJB事物

2009-07-08 11:27:05

敏捷方法

2015-10-10 11:36:01

虚拟化网络虚拟化

2021-12-14 14:33:44

人工智能AI深度学习

2020-04-14 10:22:50

零信任安全架构网络安全

2013-03-06 09:26:20

云服务云实践精准管理

2021-12-12 08:35:13

数据策略数据数据分析

2019-06-21 13:50:33

数据中心

2023-07-11 06:57:36

2024-11-08 17:07:56

2024-04-09 14:53:34

物联网IOT自动化设备

2013-03-06 10:54:03

云服务实践关键步骤

2023-01-17 13:30:16

2023-08-11 14:54:01

数据中心环境

2022-11-15 16:54:54

2022-10-10 10:36:02

数字化转型企业

2022-06-28 10:17:23

安全职位首席信息安全官

2023-05-16 16:03:10

2012-09-19 16:09:43

点赞
收藏

51CTO技术栈公众号