您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发

【原】ehcache警告“diskStorePath is already used by an existing CacheManager”

不忘初心 不忘初心 2019-05-07 围观() 评论() 点赞() JAVA开发

简介:在配置了ehcache来实现mybatis的二级缓存之后,第一次启动之后,每次启动的时候,总是会有一个diskStorePath已被占用的警告,后来发现也是因为tomcat启动时重复加载项目导致的。

配置了ehcache来实现mybatis的二级缓存之后,每次启动的时候,总是会有一个diskStorePath已被占用的警告,虽然会自动更换一个目录,也不会影响使用,但是看着着实不顺眼。

2019-05-05 12:51:22 [ WARN] - net.sf.ehcache.DiskStorePathManager - diskStorePath '/usr/local/ehcache' is already used by an existing CacheManager either in the same VM or in a different process.
The diskStore path for this CacheManager will be set to /usr/local/ehcache/ehcache_auto_created1969932983720693182diskstore.
To avoid this warning consider using the CacheManager factory methods to create a singleton CacheManager or specifying a separate ehcache configuration (ehcache.xml) for each CacheManager instance.

警告信息很清晰,已经有一个进程已经占用了/usr/local/ehcache这个目录,可是尽管我的服务器上有多个项目,但是我可以确定只有一个项目使用了ehcache,甚至我将其他的项目都停了,也还是不行。

我在启动tomcat之前,将缓存目录清空了也依旧还是有这个警告,开始以为是有什么框架自动集成了ehcache,但是转念一想,就算是集成了ehcache做缓存,总不至于说是缓存目录也正好是我配置的/usr/local/ehcache。

排除上面这个想法之后,百度了一下,看到有人提到说需要在spring中为EhcacheManager配置一个shared参数为true

<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="shared" value="true"/>
    <property name="configLocation" value="classpath:ehcache.xml"/>
</bean>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
    <property name="cacheManager" ref="ehcache"/>
</bean>

但是经过测试后发现我的问题并没有解决,仔细看了一下别人文章中提到的错误信息,好像是有些不一样,而且看人家的文章中表达的意思,貌似真的是有多个项目使用了同一个缓存目录。

继续查阅资料,发现网上大都是上面的解决方法,而且都是抄来抄去的,耐心多翻了几页百度之后,终于让我找到了原因所在:tomcat重复加载了两次项目

这就可以理解了,为什么我只有一个项目启动时也会有这个警告,因为在第一次加载的时候已经占用了缓存目录,后面第二次再加载时,还是相同的缓存目录,此时就会给出警告了。。。

mybatis二级缓存ehcache

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们