2017-02-13 16 views
2
версии

сервера: 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; 
    } 
... 

Как я могу это исправить?

+0

Я столкнулся с аналогичной проблемой в прошлом. Проблема в том, что ресурсы не были очищены правильно. Мы решили это, зарегистрировав 'ServletContextListener'. –

+0

Благодарим за сообщение. Я пытаюсь очистить в ServletContextListener, вызвав jedisConnectionFactory.destroy(); Есть ли способ очистить или зарегистрировать? – cmk1105

ответ

0

Похож на известную проблему, см. https://github.com/xetorthio/jedis/issues/936.

Очевидно, вам не нужно самостоятельно очищать JedisConnectionFactory, но пул соединений, созданный с помощью фабрики.

 Смежные вопросы

  • Нет связанных вопросов^_^