сервера: Apache Tomcat/8.0.26
Сервер построен: Aug 18 2015 11:38:37 UTC числа
Сервера: 8.0.26.0
Название ОС: Linux
OS Версия: 2.6.32-642.3.1.el6.x86_64
Архитектура: amd64
JVM версии: 1.8.0_60-b27
JVM Производитель: Oracle Corporation
Когда закрыл кот я встретил [Обще-бассейн-EvictionTimer], но не смог остановить его
Я использую версию jedis: 2.8.2 (commons-pool2: 2.4.2) Когда я останавливаю tomcat, есть предупреждение.
13-Feb-2017 08:12:14.006 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [commons-pool-EvictionTimer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Timer.java:552)
java.util.TimerThread.run(Timer.java:505)
Это некоторые конфеты из джедаев.
...
@Bean(name = "jedisConnectionFactory", destroyMethod = "destroy")
public JedisConnectionFactory jedisConnectionFactory() throws IOException {
final Properties redisConfig = PropertiesLoaderUtils.loadProperties(
new PathMatchingResourcePatternResolver().getResource("classpath:redis.properties"));
final JedisConnectionFactory result = new JedisConnectionFactory();
result.setHostName(redisConfig.getProperty("redis.hostName"));
result.setPort(Integer.parseInt(redisConfig.getProperty("redis.port")));
result.setUsePool(Boolean.parseBoolean(redisConfig.getProperty("redis.pool.use")));
result.setTimeout(Integer.parseInt(redisConfig.getProperty("redis.timeout")));
result.setPoolConfig(createJedisPoolConfig(redisConfig));
result.afterPropertiesSet();
return result;
}
...
Как я могу это исправить?
Я столкнулся с аналогичной проблемой в прошлом. Проблема в том, что ресурсы не были очищены правильно. Мы решили это, зарегистрировав 'ServletContextListener'. –
Благодарим за сообщение. Я пытаюсь очистить в ServletContextListener, вызвав jedisConnectionFactory.destroy(); Есть ли способ очистить или зарегистрировать? – cmk1105