当前位置: 首页 > 知识库问答 >
问题:

EHCache、hibernate和terracotta版本

松智勇
2023-03-14

我有一个运行Hibernate4.1.7的应用程序,并且正在使用ehcache作为2级缓存。我知道从冬眠4开始,我需要使用与冬眠捆绑在一起的ehcache罐子,但这些罐子已经很老了。

当前最新版本的ehcache是2.6.3,但hibernate 4.1.7附带的版本是2.4.3。问题是hibernate没有与EhcacheTerracotta jar捆绑在一起,我的Terracott服务器也与EhcCache Hibernate2.6.2 jar捆绑,因为它是Terracota的最新工作版本。我正在努力让我的应用程序连接到我的terracotta服务器,并假设这是因为版本不匹配。

如何让hibernate(版本2.4.3)使用我的ehcache与我的terracotta服务器连接,该服务器迎合ehcache版本2.6.2?

请帮忙

共有1个答案

松成和
2023-03-14

如果您使用Hibernate JPA实现,您应该在persistence.xml中提供以下属性:

<property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory" />

那么您的类路径中应该有以下jar文件(对于terracotta版本。3.6.5 -与JDK5兼容的最新版本):

    < Li > eh cache-core-ee-2 . 5 . 6 . jar < Li > ehcache-terra cotta-ee-2 . 5 . 6 . jar < Li > terra cotta-toolkit-1.5-runtime-ee-4 . 5 . 0 . jar

此外,您必须确保类路径上没有任何其他ehcache jar。

如果您使用的是maven,那么:

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-core-ee</artifactId>
    <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-terracotta-ee</artifactId>
    <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>org.terracotta</groupId>
    <artifactId>terracotta-toolkit-1.5-runtime-ee</artifactId>
    <version>4.5.0</version>
</dependency>

另外,不要忘记指向terracotta的maven存储库以下载所需的jar:

<repository>
    <id>terracotta-repository</id>
    <url>http://www.terracotta.org/download/reflector/releases</url>
    <releases>
        <enabled>true</enabled>
    </releases>
</repository>
 类似资料:
  • 我正在尝试将圣杯2.1.1与兵马俑和Eccache集成,但我没有得到任何好的结果。 任何人都可以给我一些建议来配置它吗?我有点困惑。

  • 我在terracotta中使用ehcache,我想知道在这样的上下文中属性maxElementsOnDisk的含义是什么。 这是否意味着赤陶层上允许的最大元素数? 如果不是,控制塔拉科塔图层上允许的元素数量的属性是什么? 如果我理解正确,maxEntriesLocalHeap表示本地堆层上允许的条目数,它可以溢出到可以溢出到磁盘的兵马俑层(如果我错了,请纠正我),但我不确定控制每个元素的元素的名称

  • 我有一个spring/hibernate项目,我试图通过ehcache和terracotta将二级缓存添加到hibernate。一切似乎都很好,我甚至可以在terracota控制台中看到我试图缓存的实体的条目。但根据数据库的统计数据和日志,根本没有缓存任何内容! 负载命中率是0%,负载统计也是0。我做错了什么? 这是我所做的,我通过maven添加了所需的罐子。 更改了我的Hibernate属性以启

  • 我在两台服务器上使用带有兵马俑的分布式ehcache。在我的缓存管理器中,我有多个缓存。但是现在我有一个要求,每当一个元素被添加到1个服务器上的1个特定缓存中时,我都希望得到第二个服务器上的通知。我尝试使用缓存事件通知程序,但这可以在本地工作。你能不能帮我弄清楚我能做什么。我是否可以将复制机制与 terracotta 一起使用来解决此问题,因为通过在 1 个缓存上使用复制,我将在其他服务器上获取该

  • 任何人都可以帮助我为什么下面的错误消息会出现在应用程序服务器上。我正在尝试用Terracotta设置EHCache。请建议任何线索,为什么会出现此消息。

  • 我正在尝试使用Terracotta在分布式环境中设置EHCache。在这里,我能够连接应用程序服务器和兵马俑服务器,在兵马俑开发人员控制台中,我能够看到复制的对象。 但是在应用程序服务器中不断出现以下异常消息,尽管应用程序的其余部分运行正常: 大家好,如果有人能指导一下为什么会出现这个异常消息,以及我们该如何解决它。此外,它将有助于我有任何全面的教程,为hibernate应用程序设置terraco