Hibernate二级缓存,在不同的JVM之间共享

时间:2014-05-01 14:34:38

标签: hibernate caching ehcache distributed-caching second-level-cache

我有兴趣知道Hibernate二级缓存是否可以在两个不同的JVM上运行的两个不同的Hibernate会话之间共享。

我正在使用带有Ehcache的Hibernate 3.1来提供二级缓存,在Ehcache.xml配置文件中我们可以指定我们在磁盘上创建缓存的位置

    <ehcache>
        <diskStore path="C:\Learn\db"/>
</ehcache>

所以如果我现在打开两个不同的Hibernate会话,在不同的JVM中都指向相同的,那将允许我在两个JVM之间共享二级缓存。

如果是这种情况。因此,如果其中一个Hibernate会话更新其缓存(会话级缓存),随后将更新第二级缓存,从而更新第二个会话在不同JVM上运行时访问该缓存将获取更新数据。

非常感谢。

2 个答案:

答案 0 :(得分:1)

是的,你可以,我不知道ehcache但infinispan允许你这样做(假设你正在共享数据库)

https://docs.jboss.org/author/display/ISPN/Using+Infinispan+as+JPA-Hibernate+Second+Level+Cache+Provider

答案 1 :(得分:1)

您可以将任何ehcache复制/群集机制与Hibernate二级缓存一起使用。见:

现在,根据您使用的复制/群集解决方案,可能不建议使用所有缓存策略,但至少不需要完整的XA环境。