Grails ehcache plugin - Another unnamed CacheManager already exists in the same VM

ehcache, grails, grails-plugin

Solution

In the `hibernate` section of `DataSource.groovy`, make sure your `cache.provider.class` is up to date:

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
}

I had the same problem because my `cache.region.factory_class` was outdated: `net.sf.ehcache.hibernate.EhCacheProvider`.

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

Problem

I run my Grails application using ehcache for my 2nd level Cache and it works. I installed the `ehcache` plugin + `cache` plugin and then it doesn't. I tried almost all solutions from the internet and found no solution I keep getting `Another unnamed CacheManager already exists in the same VM`. One of the possible solutions is to set `p:shared=true` in the `EhCacheManagerFactoryBean`, this works if I use an old plugin "springcache plugin from grails" but with the new plugin they use a modified version of this manager and the property shared is not available. I tried defining a new `ehcache.xml` file but still I can not put inside a new name for this cache manager. I tried changing the `cache.provider` class inside my `DataSource.groovy` to use one another `EhCacheProvider` such as a `Singleton`. Needless to say, I tested putting a different name using DSL in different places but still no luck. At the end I'm using the old plugin for spring cache which is deprecated. Can anybody help? I'm using Grails 2.0.3 and `ehcache-core:2.5.3`.

Original source