`
andyyehoo
  • 浏览: 71158 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

EJB事务属性的六个关键值

EJB 
阅读更多
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事务。
分享到:
评论

相关推荐

    EJB与事务 -详细描述EJB和事务

    Bean管理的事务需要开发者自己编写代码来控制事务的开始和提交,而容器管理的事务则由EJB容器自动处理,开发者只需要在ejb-jar.xml中声明事务属性,容器会根据这些属性自动进行事务管理,简化了编程工作。...

    ejb3.0 分布式事务

    在分布式事务中,我们可能需要在`persistence.xml`中指定相应的事务属性,例如设置`transaction-type="JTA"`来启用JTA(Java Transaction API),这是处理分布式事务的关键。 3. **数据源配置** 数据源是连接...

    ejb 学习笔记6

    ### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...

    ejb之实体Bean与cloudscape数据库事务处理代码

    1. 声明式事务管理:通过在Bean的部署描述符(deployment descriptor)中定义事务属性来设置事务的边界。例如,你可以指定一个方法是在一个新事务中运行,还是在一个已经存在的事务中运行。 2. 编程式事务管理:...

    EJB_TEST自己编写的EJB例子

    EJB提供强大的事务管理能力,可以设置不同的事务属性,比如所需的事务级别、传播行为等,确保数据的一致性和完整性。 **安全性**: EJB支持角色基础的访问控制(RBAC),允许对EJB方法的调用进行权限验证,以确保...

    EJB3 PPT教程

    SessionBean是EJB中的一个关键组件,它代表了业务逻辑,通常处理单个客户端的请求。在EJB3中,SessionBean变得更加轻量级,不再需要XML配置,而是通过注解实现。你可以学习如何定义SessionBean接口、实现类,并使用`...

    EJB技术代码样例

    - **事务管理**:EJB支持声明式事务管理,开发人员只需在方法上添加事务属性,容器就会自动处理事务的开始、提交或回滚。 - **安全性**:EJB可以集成Java EE的安全框架,允许细粒度的角色基线访问控制,确保只有...

    EJB基础(学习EJB者必看)

    事务管理是另一个关键特性,EJB支持声明式事务(Declarative Transactions),只需在接口或方法上添加注解,即可指定事务边界。 Javabean技术则是EJB的一个基础,javabean是一种符合特定规范的Java类,它具有属性、...

    EJB2.0一个完整的Helloworld

    EJB 2.0使用XML部署描述符(ejb-jar.xml)来配置Bean的行为,包括事务属性、安全角色、查询语句等信息。部署描述符是Bean与容器交互的关键。 ### 5. Helloworld示例 在"一个完整的Helloworld"示例中,通常会创建一...

    第一个EJB工程....

    4. **部署描述符**:EJB的配置信息通常包含在ejb-jar.xml文件中,这里定义了EJB的元数据,如Bean的类名、接口、事务属性、安全角色等。 5. **JNDI(Java Naming and Directory Interface)**:EJB客户端通过JNDI...

    EJB教程,EJB参考书

    3. **创建部署描述符**:`ejb-jar.xml`文件包含了EJB组件的元数据,如名称、事务属性和依赖关系。 4. **编译和部署**:编译源代码并打包成`ejb-jar`文件,然后使用EJB容器的工具进行部署。 5. **编写客户端程序**:...

    第一个EJB访问数据库例子

    根据业务需求,可以设置不同的事务属性,例如,要求方法在一个原子性事务中执行,即使发生异常也能保证数据一致性。 ### 7. EJBdemo项目结构 在`EJBdemo`项目中,我们可以期待看到以下组成部分: - `ejb-jar.xml`或...

    EJB学习

    4. **Deployment Descriptor**:一个XML配置文件,用于描述EJB的部署信息,如事务属性、安全性设置等。 #### 实例解析:HelloBean 以一个简单的HelloBean为例,我们首先定义了一个`HelloInterface`,其中包含了`...

    Weblogic下ejb配置

    5. 打包EJB:将EJB项目打包成一个ejb-jar文件,通常放在一个EAR(Enterprise Archive)文件中,以便于部署到WebLogic Server。 6. 部署EJB:登录到WebLogic管理控制台,选择“部署”选项,然后点击“安装”。上传...

    EJB的一个开发实例

    本文旨在通过一个具体的EJB应用系统——学校管理系统——的开发过程,探讨EJB技术的实际应用及其面临的挑战。 #### 二、项目背景 本项目的目标是开发一个学校管理系统,该系统主要提供以下功能: - 学生和教师能够...

    EJB项目开发(包含源码)

    以下将从几个关键知识点来深入解析这个EJB项目: 1. **EJB组件类型**: - **会话bean(Session Beans)**:这些bean代表了客户端与服务器之间的临时交互,可以是无状态或有状态的。无状态会话bean适用于一次性的...

    学习EJB1

    4. **部署描述符**:EJB1的配置信息存储在ejb-jar.xml文件中,包含了bean的元数据,如bean的类型、接口、事务属性等。 5. **事务管理**:EJB1提供了内置的事务管理机制,开发者可以设置事务的传播属性和隔离级别,...

    精通EJB2.0 书籍源码

    7. **config.xml**:XML配置文件在EJB2.0中用于配置bean的行为、连接池、事务属性等。它是EJB容器识别和管理bean的关键文件。 8. **Jasmine、CORBA、BMPEntity**:这些可能是项目中的子目录,分别对应不同的模块或...

    ejb3.0规范PDF

    EJB 3.0提供了声明式事务管理,开发者可以通过`@TransactionAttribute`注解指定事务属性,如REQUIRED、REQUIRES_NEW等,简化了事务处理的代码。 八、安全性 EJB 3.0利用Java EE的安全框架,可以进行角色基线访问...

Global site tag (gtag.js) - Google Analytics