首页
学习
活动
专区
工具
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.

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

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

相关·内容

领券