【问题标题】:When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit? - Follow up@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 何时提交? - 跟进
【发布时间】:2013-03-17 23:05:38
【问题描述】:

查看此链接: When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit?

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

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

【问题讨论】:

标签: hibernate jakarta-ee jboss hsqldb container-managed


【解决方案1】:

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

jboss ignores requires_new after restart

在链接中:

When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit?

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

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 2015-09-07
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多