2017-02-13 8 views
2

Server 버전을 중지 실패했습니다 아파치 톰캣/8.0.26
서버 내장 : 2015년 8월 18일을 세계 협정시 11시 38분 37초
서버 번호 : 8.0.26.0
OS 이름 : 리눅스
OS 버전 : 2.6.32-642.3.1.el6.x86_64
아키텍처 : AMD64
JVM 버전 : 1.8.0_60-B27
JVM 공급 업체 : 오라클
은 [평민 - 풀 - 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) 

이것은 jedis의 일부 conf입니다.


... 
@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

답변