2012-07-23 108 views
2

grails hibernate二級高速緩存統計 - net.sf.ehcache.Statistics如何獲得grails hibernate二級高速緩存統計信息?

我正在使用ehcache和我的二級高速緩存。

我想剖析性能並從net.sf.ehcache.Statistics獲取統計信息。 沒有成功,我一直在尋找一種從Grails或Spring訪問L2緩存管理器的方法。

我讚賞任何提示。

貝婁是用於

hibernate { 

    cache.use_second_level_cache = true 

    cache.use_query_cache = true 

    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' 

    format_sql = true 

    use_sql_comments = true 
} 

回答

1

你可以讓它在它注入到你的服務,然後enable statistics得到sessionFactory的保持典型的休眠設置:

class My Service { 

    def sessionFactory 

    def myMethod() { 
    // Enable stats 
    Statistics stats = sessionFactory.getStatistics(); 
    stats.setStatisticsEnabled(true); 

    // Do some querying and analyse the stats 

    } 

} 
+0

謝謝,我哈我發現「stats.getSecondLevelCacheRegionNames()」只返回「StandardQueryCache,UpdateTimestampsCache」。 我正在尋找正確的地方來驗證我的L2緩存嗎? 貝婁是我的域名映射。 類LogCauseMemento { 靜態映射= { 版假 id生成: '分配' 表 'log_cause' 緩存:真 }} 貝婁是域條目ehcache.xml中。 <緩存名稱= 「com.att.failbox.log.cause.LogCauseMemento」 maxElementsInMemory = 「100000」 永恆= 「真」 /> – Sami 2012-07-24 18:03:36

+0

Hibernate文檔是在這個好(HTTP://docs.jboss .ORG /休眠/ ORM/3.3 /參考/ EN/HTML/performance.html#性能的緩存)。您可以調用'sessionFactory.getStatistics() .getSecondLevelCacheStatistics(regionName) .getEntries();'通過調用'getSecondLevelCacheRegionNames()'找到'regionName'手杖' – 2012-07-25 06:22:40

1

只需添加generate_statistics=true到你的Hibernate設置:

hibernate { 
    ... 
    generate_statistics=true 
    ... 
}