0

我已经为休眠二级缓存配置了 ehcache 以使用 Terracotta 服务器。一切正常,除了查询缓存的 UpdateTimestampsCache 没有显示在开发控制台中。我们使用的是 Hibernate 3.6.10 和 ehcache 2.6.0。

我看到所有实体、集合、查询和 StandardQueryCache,但没有看到 org.hibernate.cache.UpdateTimestampsCache。我知道时间戳缓存存在并且正在使用,因为我可以使用检测到的指标库查看其上的统计信息。

有任何想法吗?谢谢!

这是我的 ehcache.xml 配置

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
    updateCheck="false" 
    name="Hibernate-CacheManager"
    monitoring="autodetect"
    dynamicConfig="true">    

<terracottaConfig url="localhost:9510" />

<defaultCache
    eternal="false"
    overflowToDisk="false"
    maxElementsInMemory="50000"
    timeToIdleSeconds="7200"
    timeToLiveSeconds="0">

    <cacheDecoratorFactory 
        class="com.yammer.metrics.ehcache.InstrumentedEhcacheFactory" />

    <terracotta/>
</defaultCache>


<cache
    name="org.hibernate.cache.UpdateTimestampsCache"
    eternal="false"
    overflowToDisk="false"
    maxElementsInMemory="500"
    timeToIdleSeconds="7200"
    timeToLiveSeconds="0">

    <cacheDecoratorFactory 
        class="com.yammer.metrics.ehcache.InstrumentedEhcacheFactory" />

    <terracotta/>

</cache>

<cache
    name="org.hibernate.cache.StandardQueryCache"
    eternal="false"
    overflowToDisk="false"
    maxElementsInMemory="50000"
    timeToIdleSeconds="7200"
    timeToLiveSeconds="0">

    <cacheDecoratorFactory 
        class="com.yammer.metrics.ehcache.InstrumentedEhcacheFactory" />

    <terracotta/>

</cache>
</ehcache>
4

1 回答 1

0

重新复制答案:http ://forums.terracotta.org/forums/posts/list/0/7554.page#36815

Hibernate 不维护直到 Hibernate 4.0.0 的 UpdateTimestampsCache 缓存的统计信息。这解释了为什么缓存没有出现在 terracotta 开发控制台中。

这被归档为错误https://hibernate.onjira.com/browse/HHH-5326

于 2012-10-02T17:08:39.947 回答