Java Ehcache在启动失败后未清理对等侦听器
我有一个问题,在应用程序启动失败后,ehcache没有清理其侦听器。基本上,启动失败后,它会尝试在remoteObjectPort 40003上建立侦听器,但由于端口已在使用,因此失败:Java Ehcache在启动失败后未清理对等侦听器,java,ehcache,Java,Ehcache,我有一个问题,在应用程序启动失败后,ehcache没有清理其侦听器。基本上,启动失败后,它会尝试在remoteObjectPort 40003上建立侦听器,但由于端口已在使用,因此失败: Caused by: java.rmi.server.ExportException: Port already in use: 40003; nested exception is: java.net.BindException: Address already in use ... 即使应
Caused by: java.rmi.server.ExportException: Port already in use: 40003; nested exception is:
java.net.BindException: Address already in use
...
即使应用程序已停止,侦听器仍在这些端口上运行:
[root@server logs]# netstat -tulpn | grep 4000
tcp 0 0 0.0.0.0:40001 0.0.0.0:* LISTEN 14946/java
tcp 0 0 0.0.0.0:40003 0.0.0.0:* LISTEN 14946/java
这是我的ehcache.xml文件中的相关配置:
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic,
multicastGroupAddress=230.0.0.1,
multicastGroupPort=40002,
timeToLive=64"
/>
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="port=40001,remoteObjectPort=40003,
socketTimeoutMillis=20000"/>
我还在hibernate配置中设置以下属性,以使用ehcache启用二级缓存:
properties.put("hibernate.cache.use_second_level_cache", "true");
properties.put("hibernate.cache.use_query_cache", "true");
properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
properties.put("net.sf.ehcache.configurationResourceName", "/cache/ehcache.xml");
请添加有关应用程序生命周期的更多信息。从这个问题上,我推断你正在使用Spring。我确认如果
CacheManager
初始化正确,最好干净地关闭它。@LouisJacomet done。。这有帮助吗?
properties.put("hibernate.cache.use_second_level_cache", "true");
properties.put("hibernate.cache.use_query_cache", "true");
properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
properties.put("net.sf.ehcache.configurationResourceName", "/cache/ehcache.xml");