3

请参阅此链接: @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 何时提交?

B怎么可能是正确答案?我认为使用 REQUIRES_NEW 注释的方法将在外部暂停事务继续之前提交。

我之所以问这个问题,是因为当涉及到从 for 循环中的另一个 bean 的 requires_new 开始的事务时,我看到了奇怪的行为。就像 Aby 在 for 循环中调用 bob 一样。如果其中一个事务由于例如 UniqueConstraintViolation 而回滚,则 HSQLDB 和 db2 也会间歇性地回滚先前的事务,并且间歇性地只有事务失败,并提交其他事务。只有当我重新启动我的 jboss 时,行为才会改变。当事务失败并且我得到前一个事务回滚的行为时,我还会得到一个 jdbcException: Connection closed in next call from the loop。所以,首先我想知道 requires_new 的预期行为。我正在使用 Hibernate、jboss 5、CMT、db2 和内存 HSQLDB(我已经尝试过 1.8 版本和 2.2.9)谢谢!

4

1 回答 1

4

所以我发现这是奇怪行为的原因

jboss 重启后忽略 requires_new

在链接中:

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 何时提交?

替代 a 是正确答案,因此该帖子中的答案是错误的。

于 2013-03-30T10:25:00.047 回答