首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EJB3事务传播

EJB 3 是 Java 企业版(Java Enterprise Edition,简称 J2EE)的一个关键组件,它为实现分布式系统的业务服务提供了一个可扩展的体系结构。下面是一些关于 EJB 3 事务传播的基本信息。

EJB3 事务传播

EJB 3 事务传播主要分为以下三类:

REQUIRED

这是默认的事务传播行为。在业务方法执行期间,如果有一个活跃的事务,则该事务将与业务方法共享。如果业务方法执行时没有活跃事务,则会抛出异常。

代码语言:txt
复制
Exception in component resource injection
javax.ejb.EJBException: Transaction is not active

REQUIRES_NEW

在这种事务传播行为中,新的事务将在执行业务方法时开始,而不管当前是否存在活跃的事务。如果在业务方法上提交或回滚事务,而其他事务的参与者尚未结束,则会抛出异常。

代码语言:txt
复制
Exception in transaction: Rollback complete after failure
org.jboss.ejb3.exception.EJBTransactionRolledbackException: EJB Exception occurred during commit processing, error while creating EJB transaction: javax.transaction.RollbackException: Transaction marked for rollback. Please fix failed transaction before performing this operation.

SUPPORTS

这种事务传播行为允许 EJB 组件与现有的事务分离,即使没有创建新的事务。这是最不安全的事务行为。如果当前没有创建新事务的业务方法发生异常,则会抛出异常。

代码语言:txt
复制
javax.ejb.EJBException: Could not commit EJB transaction; Nested exception is: javax.transaction.RollbackException: Transaction marked for rollback. Please fix failed transaction before performing this operation.

在选择合适的事务传播行为时,需要权衡业务的正确性和安全性。在具体实施时,还需要注意事务的隔离性和数据一致性等方面的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共29个视频
【动力节点】JDBC核心技术精讲视频教程-jdbc基础教程
动力节点Java培训
本套视频教程中讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库的同学。Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。
领券