我已经为hibernate二级缓存配置了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>
答案 0 :(得分:0)
回复来自:http://forums.terracotta.org/forums/posts/list/0/7554.page#36815
的回答Hibernate不会将UpdateTimestampsCache缓存的统计信息维护到Hibernate 4.0.0。这解释了为什么缓存没有显示在terracotta开发控制台中。