Fernando A.
Fernando A.

Reputation: 61

Another CacheManager with same name 'cacheManager' already exists in the same VM

I receive this error when starting tomcat with ehcache and Spring.

Another CacheManager with same name 'cacheManager' already exists in the same VM. Please 
provide unique names for each CacheManager in the config or do one of following:
1. Use one of the CacheManager.create() static factory methods to reuse same
   CacheManager with same name or create one if necessary
2. Shutdown the earlier cacheManager before creating new one with same name.

ehcache.xml

         <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="ehcache.xsd"
            updateCheck="true"
            monitoring="autodetect"
            dynamicConfig="true"
            name="ehcacheManager"
            >
        ....

    </ehcache>

cache-context.xml

        <bean id="cacheManager" 

        class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" scope="singleton">
                <property name="shared" value="true"/>
                <property name="configLocation">
                    <value>classpath:ehcache.xml</value>
                </property>
            </bean>

I do have and old dependency to hibernate-ehcache, that unfortunately I can not delete. Could this be the issue?

  <dependency>
                   <groupId>org.hibernate</groupId>
                   <artifactId>hibernate-ehcache</artifactId>
                   <version>3.5.0-Final</version>
               </dependency>

Any suggestions? Thank you!

Upvotes: 6

Views: 13915

Answers (3)

user16315415
user16315415

Reputation: 1

Following will solve the problem:

hibernate.cache.region.factory_class = org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory

hibernate.cache.provider_class = net.sf.ehcache.hibernate.SingletonEhCacheProvider

Upvotes: 0

Selvam Rajendran
Selvam Rajendran

Reputation: 1376

There are two possiblites.

  1. someother application installed on the semesever with same cache name
  2. Application may deployed twice when you start the server due to ContextLoaderListener. So remove ContextLoaderListener from your web.xml.

Upvotes: 0

Some solutions are discussed here here

and you might need to provide a ehcache.xml or set the cache name otherwise as you can see here

Edit : ApplicationContext loaded twice

If you hit the breakpoint, go up the stacktrace and you may discover why spring is loading the context twice.

Upvotes: 0

Related Questions