Grails ehcache插件 - 另一个未命名的CacheManager已存在于同一个VM中

时间:2013-03-27 11:07:55

标签: grails ehcache grails-plugin

我使用ehcache为我的二级缓存运行我的Grails应用程序,它可以工作。我安装了ehcache插件+ cache插件,然后却没有。我尝试了几乎所有来自互联网的解决方案,但没有找到我持续获得Another unnamed CacheManager already exists in the same VM的解决方案。

其中一个可能的解决方案是在p:shared=true中设置EhCacheManagerFactoryBean,如果我使用旧的插件“grails的springcache插件”,这是有效的,但是使用新的插件,他们使用了这个的修改版本经理和共享的财产不可用。

我尝试定义一个新的ehcache.xml文件,但仍然无法为此缓存管理器添加新名称。

我尝试更改cache.provider内的DataSource.groovy课程,以便彼此使用EhCacheProvider,例如Singleton

毋庸置疑,我测试过在不同的地方使用DSL设置不同的名称,但仍然没有运气。

最后我使用旧插件进行了不推荐使用的spring cache。有人可以帮忙吗?

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

4 个答案:

答案 0 :(得分:7)

hibernate的{​​{1}}部分,确保您的DataSource.groovy是最新的:

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

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

答案 1 :(得分:5)

对于Grails 2.5.x出现此错误的用户,只需将其添加到Config.groovy

即可
beans {
   cacheManager {
      shared = true
  }
}

这解决了我的问题。

来源:https://github.com/grails/grails-core/releases/tag/v2.5.0

答案 2 :(得分:0)

尝试使用缓存& cache-ehcache 插件,它对我有用,但有一些限制。但对于2ndlevel Cache,它可以正常工作

答案 3 :(得分:0)

对于到达此处的人来说,获得与OP相同的错误可能会认为该错误可能是由运行时更新域类(热代码交换)造成的,这在Grails的alle版本中效果不佳。

我使用Grails 2.5.4来解决这个问题,但是应用程序重启按钮是唯一可以解决的问题。