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事务。
分享到:
相关推荐
Bean管理的事务需要开发者自己编写代码来控制事务的开始和提交,而容器管理的事务则由EJB容器自动处理,开发者只需要在ejb-jar.xml中声明事务属性,容器会根据这些属性自动进行事务管理,简化了编程工作。...
在分布式事务中,我们可能需要在`persistence.xml`中指定相应的事务属性,例如设置`transaction-type="JTA"`来启用JTA(Java Transaction API),这是处理分布式事务的关键。 3. **数据源配置** 数据源是连接...
### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...
1. 声明式事务管理:通过在Bean的部署描述符(deployment descriptor)中定义事务属性来设置事务的边界。例如,你可以指定一个方法是在一个新事务中运行,还是在一个已经存在的事务中运行。 2. 编程式事务管理:...
EJB提供强大的事务管理能力,可以设置不同的事务属性,比如所需的事务级别、传播行为等,确保数据的一致性和完整性。 **安全性**: EJB支持角色基础的访问控制(RBAC),允许对EJB方法的调用进行权限验证,以确保...
SessionBean是EJB中的一个关键组件,它代表了业务逻辑,通常处理单个客户端的请求。在EJB3中,SessionBean变得更加轻量级,不再需要XML配置,而是通过注解实现。你可以学习如何定义SessionBean接口、实现类,并使用`...
- **事务管理**:EJB支持声明式事务管理,开发人员只需在方法上添加事务属性,容器就会自动处理事务的开始、提交或回滚。 - **安全性**:EJB可以集成Java EE的安全框架,允许细粒度的角色基线访问控制,确保只有...
事务管理是另一个关键特性,EJB支持声明式事务(Declarative Transactions),只需在接口或方法上添加注解,即可指定事务边界。 Javabean技术则是EJB的一个基础,javabean是一种符合特定规范的Java类,它具有属性、...
EJB 2.0使用XML部署描述符(ejb-jar.xml)来配置Bean的行为,包括事务属性、安全角色、查询语句等信息。部署描述符是Bean与容器交互的关键。 ### 5. Helloworld示例 在"一个完整的Helloworld"示例中,通常会创建一...
4. **部署描述符**:EJB的配置信息通常包含在ejb-jar.xml文件中,这里定义了EJB的元数据,如Bean的类名、接口、事务属性、安全角色等。 5. **JNDI(Java Naming and Directory Interface)**:EJB客户端通过JNDI...
3. **创建部署描述符**:`ejb-jar.xml`文件包含了EJB组件的元数据,如名称、事务属性和依赖关系。 4. **编译和部署**:编译源代码并打包成`ejb-jar`文件,然后使用EJB容器的工具进行部署。 5. **编写客户端程序**:...
根据业务需求,可以设置不同的事务属性,例如,要求方法在一个原子性事务中执行,即使发生异常也能保证数据一致性。 ### 7. EJBdemo项目结构 在`EJBdemo`项目中,我们可以期待看到以下组成部分: - `ejb-jar.xml`或...
4. **Deployment Descriptor**:一个XML配置文件,用于描述EJB的部署信息,如事务属性、安全性设置等。 #### 实例解析:HelloBean 以一个简单的HelloBean为例,我们首先定义了一个`HelloInterface`,其中包含了`...
5. 打包EJB:将EJB项目打包成一个ejb-jar文件,通常放在一个EAR(Enterprise Archive)文件中,以便于部署到WebLogic Server。 6. 部署EJB:登录到WebLogic管理控制台,选择“部署”选项,然后点击“安装”。上传...
本文旨在通过一个具体的EJB应用系统——学校管理系统——的开发过程,探讨EJB技术的实际应用及其面临的挑战。 #### 二、项目背景 本项目的目标是开发一个学校管理系统,该系统主要提供以下功能: - 学生和教师能够...
以下将从几个关键知识点来深入解析这个EJB项目: 1. **EJB组件类型**: - **会话bean(Session Beans)**:这些bean代表了客户端与服务器之间的临时交互,可以是无状态或有状态的。无状态会话bean适用于一次性的...
4. **部署描述符**:EJB1的配置信息存储在ejb-jar.xml文件中,包含了bean的元数据,如bean的类型、接口、事务属性等。 5. **事务管理**:EJB1提供了内置的事务管理机制,开发者可以设置事务的传播属性和隔离级别,...
7. **config.xml**:XML配置文件在EJB2.0中用于配置bean的行为、连接池、事务属性等。它是EJB容器识别和管理bean的关键文件。 8. **Jasmine、CORBA、BMPEntity**:这些可能是项目中的子目录,分别对应不同的模块或...
EJB 3.0提供了声明式事务管理,开发者可以通过`@TransactionAttribute`注解指定事务属性,如REQUIRED、REQUIRES_NEW等,简化了事务处理的代码。 八、安全性 EJB 3.0利用Java EE的安全框架,可以进行角色基线访问...