# Another unnamed CacheManager already exists in the same VM



## dmike (4. Apr 2012)

Spring 3.1.1 / ehCache 2.5

Wenn ich die Tests laufen lasse dann bekomme ich folgende Exception:



> 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.
> The source of the existing CacheManager is: DefaultConfigurationSource [ ehcache.xml or ehcache-failsafe.xml ]




Mir ist das ganze nicht klar. Warum meint ehCache es gibt > 1 cacheManager?
Ich hab in der spring config den cacheManager explizit auf singleton gesetzt (sollte ja default sein).
Ich habe definitiv nur eine Stelle an der ich den cacheManager verwende.

Das ist der Ausschnitt aus der spring config


```
<ehcache:annotation-driven />

    <bean
        id="cacheManager"
        class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
        scope="singleton"
        />
```


Hier der kopf der ehcache.xml

[XML]
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false"
         maxBytesLocalHeap="100M" 
         name="cacheManager"
         >
....
</ehcache>
[/XML]

Und die Klasse mit dem @Autowire.


```
@Component
public class BookingCache implements CacheWrapper<String, BookingUIBean> {


    @Autowired
    private CacheManager ehCacheManager;
....
}
```


----------



## mvitz (4. Apr 2012)

Vermutung: <ehcache:annotation-driven installiert per default einen eigenen CacheManager.
Mögliche Lösung:
Nutze <ehcache:annotation-driven cache-manager="cacheManager" />


----------



## dmike (5. Apr 2012)

mvitz hat gesagt.:


> Vermutung: <ehcache:annotation-driven installiert per default einen eigenen CacheManager.
> Mögliche Lösung:
> Nutze <ehcache:annotation-driven cache-manager="cacheManager" />




Ich habe auch auf SO die Frage gestellt. Es scheint wohl ein allgemeines Problem zu sein. 

spring - Another unnamed CacheManager already exists in the same VM (ehCache 2.5) - Stack Overflow


Dort ist auch ein weitere Blog Link angegeben, der das Problem erklärt
Ich bin wieder zurück auf 2.4.7 gegangen.


----------



## EasyEagle (12. Apr 2012)

Hi dmike,

ich verwende zwar Apache Shiro und nicht Spring, hatte aber das Problem auch immer wenn ich meine Anwendung auf den laufenden Server neu deployed hab.
Ab der Version 2.5 muss der Cachename unique sein und wenn der Server schon läuft hat er bereits einen Cache + Name.
Alternative wäre bei jedem refresh/redeploy den Server auch neu zu starten.

Deshalb bin ich wieder auf die Version 2.4.7 gegangen, da taucht dieses Problem nicht auf.

lg


----------

