[SPRING] tomcat7 - jdbc 데이터 소스 - 메모리 누수가 발생할 가능성이 큽니다.
SPRINGtomcat7 - jdbc 데이터 소스 - 메모리 누수가 발생할 가능성이 큽니다.
Tomcat이 종료되면 catalina.out 로그 파일에 다음 메시지가 표시됩니다. Tomcat 7.x 및 Tomcat JDBC 데이터 소스를 사용하고 있습니다.
Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/my_webapp] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/my_webapp] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.
첫 번째 주장은 DataSource가 강제로 등록이 해제되었으므로 괜찮습니다. 그러나 그것은 이상한 일입니다. 왜냐하면 나는 destroy-method를 다음과 같이 구성했기 때문입니다 :
<bean name="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
왜 내가 두 번째를 얻는 지 잘 모르겠다. "MySQL Statement Cancellation Timer"에 관한 것.
어떤 도움을 주시면 감사하겠습니다.
편집 1 : @ Zelldon에서 제안한 수정을 시도하고 첫 번째 오류를 제거합니다. 그러나 MySQL Statement Cancellation Timer 관련 문제는 계속 발생합니다.
해결법
-
==============================
1.SQL 커넥터 / 드라이버를 tomcat / lib에 넣고 전쟁에 넣지 마십시오. war를 배포 할 때마다 커넥터 / 드라이버가 만들어지기 때문에 가비지 컬렉터가 메모리 누수로 끝날 수없는 가끔씩 제거됩니다. 그래서 커넥터를 tomcat / lib 폴더로 옮겨보십시오.
SQL 커넥터 / 드라이버를 tomcat / lib에 넣고 전쟁에 넣지 마십시오. war를 배포 할 때마다 커넥터 / 드라이버가 만들어지기 때문에 가비지 컬렉터가 메모리 누수로 끝날 수없는 가끔씩 제거됩니다. 그래서 커넥터를 tomcat / lib 폴더로 옮겨보십시오.
다음 답변을 읽어보십시오.
JDBC 드라이버를 TOMCAT_HOME / lib 폴더에 넣어야하는 이유는 무엇입니까?
Tomcat을 MySQL과 연결하도록 구성하는 방법
-
==============================
2.이 버그는 MySQL JDBC 커넥터의 http://bugs.mysql.com/bug.php?id=65909와 관련이 있습니다.
이 버그는 MySQL JDBC 커넥터의 http://bugs.mysql.com/bug.php?id=65909와 관련이 있습니다.
MySQL 팀이 문제를 해결할 때까지 기다리거나 MySQL과 잘 작동하는 Drizzle JDBC 커넥터를 사용하려고합니다 (URL 연결에서 매개 변수를 변경하기 만하면됩니다). 테스트에서이 종류가 없습니다. 버그.
from https://stackoverflow.com/questions/15632153/tomcat7-jdbc-datasource-this-is-very-likely-to-create-a-memory-leak by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Rest Template + Spring Web MVC를 이용한 다중 파일 업로드 (0) | 2018.12.08 |
---|---|
[SPRING] 스프링 부트 액츄에이터 응용 프로그램이 Ubuntu VPS에서 시작되지 않습니다. (0) | 2018.12.08 |
[SPRING] 서비스 계층 및 컨트롤러 : 누가 처리합니까? (0) | 2018.12.08 |
[SPRING] Spring Boot에서 암시 적으로 사용하는 Jackson JSON 매퍼를 사용자 정의하는 방법은 무엇입니까? (0) | 2018.12.08 |
[SPRING] Spring XML 컨텍스트에서 조건부 리소스 가져 오기를 수행하는 방법? (0) | 2018.12.08 |