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 ???