【问题标题】:Transactional L2 cache in HibernateHibernate 中的事务 L2 缓存
【发布时间】:2009-08-31 12:51:53
【问题描述】:

第一季度: “交易”策略保证了什么?

第二季度: JTA作为事务管理器(由属性指定)的“事务”策略和“读/写”策略有什么区别。

第三季度: 如果我在 .hbm.xml 文件中为某些实体指定“事务”策略,然后将使用不支持“事务”策略的 L2 缓存。

【问题讨论】:

    标签: hibernate second-level-cache


    【解决方案1】:

    对于Q1 - 在我的理解中,交易意味着两件事。如果您有同步复制,您的事务将暂停,直到所有节点都获得复制的更改。如果您有异步复制,您可以确保您的其他节点将看到所选隔离级别的更改(例如,读取已提交)并将遵守提交和角色回复。 这也意味着,如果数据库中发生错误,或者抛出另一个异常(在调用者的事务方面导致回滚),缓存也将对更改执行回滚 - 保持缓存和数据库之间的同步。 请注意,这需要 JPA 事务管理器。

    对于Q2 - 读/写不是集群安全的,它不能保证节点之间的数据一致性

    对于 Q3 - 从未尝试过,但它可能会因一个不错的异常而失败

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 2023-04-09
      • 1970-01-01
      • 2021-10-03
      • 2015-05-04
      相关资源
      最近更新 更多