2010-01-28 75 views
1

我读到EJB 2.x规范不支持嵌套事务。 但逻辑上认为我们可以调用一个EJB方法,该方法具有来自另一个EJB方法的REQUIRES_NEW txn属性,这个方法实际上启动了一个事务 这不是一个有效的情况。如果有效不是所谓的嵌套事务。J2EE 1.4中的嵌套事务支持

请指点一下,如果我在这里丢失任何东西。

回答

1

REQUIRES_NEW的传播是指:

创建一个新的事务处理,如果存在挂起 当前事务。

因此,交易将不会嵌套 - 第一个交易暂停,分流,并开始一个新的,不相关的交易。

您并不需要自己嵌套事务,只需要确保每次通过事务边界时,都继承现有事务(或者启动一个新事务)。默认传播PROPAGATION_REQUIRED通常足够好。有趣的是,JDBC 3.0的确引入了嵌套事务的概念,但EBJ规范还没有赶上。