2013-03-27 19 views
5

我使用ehcache爲我的第二級緩存運行我的Grails應用程序,它可以工作。我安裝了ehcache插件+ cache插件,然後它不。我嘗試了幾乎所有來自互聯網的解決方案,但沒有找到解決方案,我一直收到Another unnamed CacheManager already exists in the same VMGrails ehcache插件 - 另一個未命名的CacheManager已經存在於同一個虛擬機中

其中一個可能的解決方案是在EhCacheManagerFactoryBean中設置p:shared=true,如果我使用舊插件「grails的springcache插件」,但使用新插件,它使用此管理器的修改版本並且共享屬性不適用可用。

我試着定義一個新的ehcache.xml文件,但我仍然無法爲此緩存管理器添加一個新名稱。

我試圖改變我的DataSource.groovycache.provider類使用彼此EhCacheProvider作爲Singleton這樣。不用說,我測試了在不同的地方使用不同的名稱,但仍然沒有運氣。

最後,我使用舊的插件春季緩存已棄用。任何人都可以幫忙嗎?

我正在使用Grails 2.0.3和ehcache-core:2.5.3

回答

6

工作在DataSource.groovyhibernate部分,確保您的cache.provider.class是最新的:

hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = true 
    cache.region.factory_class = 'grails.plugin.cache.ehcache.hibernate.BeanEhcacheRegionFactory' // For Hibernate before 4.0 
    cache.region.factory_class = 'grails.plugin.cache.ehcache.hibernate.BeanEhcacheRegionFactory4' // For Hibernate before 4.0 and higher 
} 

我有同樣的問題,因爲我cache.region.factory_class已經過時:net.sf.ehcache.hibernate.EhCacheProvider

http://grails-plugins.github.io/grails-cache-ehcache/guide/usage.html

+0

這是正確的答案,請OP值得注意的是給這個人他的道具:) – 2014-11-23 07:22:32

+1

,如果你在一個不同的Grails版本得到同樣的錯誤,有可能是你需要使用對Hibernate不同的緩存工廠類。您的版本(以及任何中間版本)的發行說明始終是一個有用的檢查地點(例如https://github.com/grails/grails-core/releases/tag/v2.4.5)。 – jonnybot 2015-05-19 14:40:15

0

嘗試使用緩存 & 緩存的Ehcache插件,它爲我的作品有一些限制。但對於2ndlevel緩存它正確

0

對於到達這裏得到同樣的錯誤作爲OP可能認爲錯誤可能是由於在運行時(熱代碼交換)域類的更新,這是不是在全部很好做引起人Grails版本。

我在Grails 2.5.4中遇到了這個bug,但是應用程序重啓按鈕是唯一的解決方案。

相關問題