【问题标题】:EJB3/DB2 Transactions not rolling backEJB3/DB2 事务不回滚
【发布时间】:2009-10-16 12:51:57
【问题描述】:

我有一个EntitiesSession Bean 的树。 Session Bean 只是简单地持久化或合并实体,所讨论的方法标记为@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)

现在,如果子实体由于(例如)外键违规或缺少不可为空的字段而无法持久化/合并,事务会在日志中标记为要回滚,并且@ 987654325@ 抛出。我原以为整个事务会回滚,但在 EJB 会话 bean 调用返回后,我看到父实体出现在数据库中,尽管子实体失败了。

有没有其他人看到过这样的行为?附加信息:

Server: Glassfish
Persistence manager: Toplink
Connection Pool: DB2 Universal Driver XA compliant driver.

谢谢。

【问题讨论】:

  • 你能显示抛出异常的代码吗?

标签: jpa db2 ejb-3.0 transactions toplink-essentials


【解决方案1】:

看起来 Glassfish 中的连接池已设置为启用了“非事务性连接”标志。这导致无法回滚。

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2014-06-30
    • 2012-07-13
    • 2013-12-15
    • 2011-01-26
    相关资源
    最近更新 更多