如何防止共享Spring EhCacheManager关闭多个应用程序实例中的一个关闭?

时间:2017-04-29 04:56:59

标签: spring ejb ehcache

WebSphere容器中同一企业应用程序的多个实例同时从队列中读取消息。该应用程序具有共享的EhCacheManager。作为单个应用程序实例中的异常的结果,Spring按如下方式关闭共享的EhCacheManager:

org.springframework.cache.ehcache.EhCacheManagerFactoryBean destroy Shutting down EHCache CacheManager

同时正常运行的其他应用程序实例会受到关闭缓存管理器的影响:

java.lang.IllegalStateException: The myCache Cache is not alive (STATUS_SHUTDOWN)

当应用程序实例因其他实例正在使用它时因故障而被销毁时,如何避免共享EhCacheManager的Spring关闭?我很高兴使用不同的解决方案,例如非共享的EhCacheManager,但我失败了,因为我不知道如何为每个应用程序实例动态分配唯一的缓存名称。

<bean 
        id="ehCacheManager"
        scope="singleton" 
        class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="shared" value="true" />
    <property name="cacheManagerName" value="myCacheManager" />
</bean>

WebShere 6.1,Spring 3.0.6.RELEASE,EHCache ???

0 个答案:

没有答案