`
yanghongxia9
  • 浏览: 115083 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

EJB事务属性

    博客分类:
  • EJB
 
阅读更多
事务属性控制事务的作用域。

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

Required,RequiresNew,Mandatory,NotSupported,Supports,Never.

1、Required

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

     Required属性适合绝大多数事务,建议把它设置成默认的,至少在开发阶段。事务属性是声明式的,后期也可以很容易的修改。

2、RequiresNew

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

   (1) 挂起客户端事务

   (2) 启动一个新事务

   (3) 把调用委派给方法

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

    如果客户端没有与某个事务相关联,则容器在运行方法前先启动一个新事务。

    如果确保方法始终在一个新事务中运行,应该使用RequiresNew属性。

3、Mandatory

     如果客户端运行在某个事务中且调用了EJB中的方法,则该方法运行在客户端事务中。

     如果客户端没有与某个事务相关联,则容器抛出TransactionRequiredException。

     如果EJB中的方法必须使用客户端的事务,则应该使用Mandatory属性。

4、NotSupported

     如果客户端在某个事务中运行且调用了EJB中的方法,则容器先挂起客户端事务,调用方法结束之后回复客户端事务。

    如果客户端没有与某个事务相关联,则容器在运行方法前不启动事务

    对于不需要事务的方法,可以考虑该属性。事务需要一定的开销,NotSupported属性可以提高性能。

5、Supports

     如果客户端运行在某个事务中且调用了EJB中的方法,则该方法运行在客户端的事务中。

     如果客户端没有与某个事务关联,则容器运行方法前不启动新的事务。

6、Never

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

相关推荐

    EJB的事务属性

    在深入探讨EJB(Enterprise JavaBeans)的事务属性之前,我们先来理解一下EJB的基本概念及其在企业级应用中的重要性。EJB是Java EE平台的核心组件之一,主要用于构建可扩展、健壮且安全的企业级应用程序。它提供了一...

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

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

    EJB实体Bean与事物管理

    3. **EJB事务属性** - **REQUIRED**: 默认属性,如果当前没有事务,容器会创建一个新的事务。 - **REQUIRES_NEW**: 创建一个新的事务,即使当前存在事务,新事务也会独立于当前事务运行。 - **MANDATORY**: 如果...

    ejb3.0 分布式事务

    EJB3.0引入了注解,如`@TransactionAttribute`,可以轻松地在方法级别声明事务属性。例如,`@TransactionAttribute(TransactionAttributeType.REQUIRED)`表示如果当前没有事务,容器会开始一个新的;`@...

    EJB3-JBOSS7-分布式事务示例

    2. **配置文件**:如`persistence.xml`,用于配置JPA实体管理和事务属性。 3. **测试代码**:演示如何启动一个跨越多个bean的事务,展示EJB3和JBoss AS7对分布式事务的支持。 4. **部署描述符**:如`ejb-jar.xml`或`...

    java面试笔试试题

    1. EJB事务属性: - TX_REQUIRED:这是最常见的事务属性,它表示方法必须在事务上下文中执行。如果调用者已经在事务中,那么方法将在该事务中运行;如果不在,服务器将为方法创建一个新的事务。 - TX_SUPPORTS:这...

    平安银行招聘测试工程师笔试题含答案.doc

    13. **EJB事务属性**:在EJB中,`Supports` 属性表示方法调用可以参与到当前运行的事务中,但如果不存在事务上下文,它不会创建新的事务。`Required` 属性要求方法必须在事务上下文中执行,如果不存在则抛出异常。`...

    实战EJB 实战EJB 实战EJB

    通过将业务逻辑与基础架构关注点(如事务管理、安全性、持久性和并发控制)分离,EJB允许开发者专注于核心业务逻辑的实现,而将非功能性的复杂性交由容器来处理。 **EJB体系结构** EJB体系结构主要包括三个主要...

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

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

    平安银行测试工程师笔试题.pdf

    13. **EJB事务属性**:在EJB中,"Required"事务属性表示如果调用方法时没有事务上下文,容器会自动创建一个新的事务。 14. **Java字节代码解释执行**:Java虚拟机(JVM)负责解释执行字节码,它是Java应用程序的...

    平安科技软件测试复习题归纳.pdf

    13. **EJB事务属性**:`Required`表示方法必须在事务上下文中执行,如果不存在则抛出异常。 14. **Java字节码执行**:虚拟机(JVM)负责解释执行Java字节码,并负责内存管理和垃圾回收。 15. **等价类划分**:等价...

    如何面试一个java程序员.pdf,这是一份不错的文件

    - 探讨典型的Web应用classloader结构,EJB事务属性及其差异,以及StatefulSessionBean的生命周期。 - 讨论JMS的消息模型,以及在EJB容器中如何控制事务。 8. **开源框架与库**: - 询问候选人对Spring框架的使用...

    EJB_TEST自己编写的EJB例子

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

    EJB技术代码样例

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

    EJB基础(学习EJB者必看)

    Javabean技术则是EJB的一个基础,javabean是一种符合特定规范的Java类,它具有属性、getter和setter方法,以及一个默认构造器。Javabeans通常用于构建EJB组件的表示层,或者作为客户端与EJB之间的数据载体。 在...

    EJB3 PPT教程

    EJB3的bean默认支持声明式事务管理,即通过注解如`@TransactionAttribute`来定义事务的边界和策略。 通过这个PPT教程,你将全面了解EJB3的各种组件和它们在实际开发中的应用。理解并掌握这些知识点,你就能更有效地...

    EJB学习PPT(上)

    5. **事务管理**:EJB支持事务属性,如Required、RequiresNew、Mandatory、NotSupported、Supports和Never,它们决定了事务如何在EJB方法调用中传播。 6. **安全性**:EJB提供了角色基的安全机制,允许对bean的方法...

    EJB教程,EJB参考书

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

    ejb sample

    在EJB项目中,部署描述符(如ejb-jar.xml)定义了Bean的行为和配置信息,包括Bean的接口、实现类、事务属性、安全性设置等。`testEJBProject`可能包含了项目的源代码、资源文件以及部署描述符。 4. **客户端调用**...

    EJB全实例教程

    3. 配置EJB,如定义远程接口、事务属性和安全角色。 4. 测试EJB,通过客户端应用调用EJB方法,验证其功能和性能。 5. 部署和运行EJB应用,将项目打包成JAR或EAR文件,然后在Java EE应用服务器上部署。 通过这个**...

Global site tag (gtag.js) - Google Analytics