웹 응용 프로그램을 실행할 때이 메시지가 나타납니다. 정상적으로 실행되지만 종료하는 동안이 메시지가 나타납니다.
심각 : 웹 응용 프로그램이 JBDC 드라이버 [oracle.jdbc.driver.OracleDriver]를 등록했지만 웹 응용 프로그램을 중지했을 때 등록을 해제하지 못했습니다. 메모리 누수를 방지하기 위해 JDBC 드라이버가 강제로 등록 해제되었습니다.
도움을 주셔서 감사합니다.
버전 6.0.24 때문에,와 톰캣 선박 메모리 누수 탐지 웹 애플리케이션의에서 JDBC 4.0 호환 드라이버가있을 때 다시 경고 메시지의 종류로 이어질 수 기능을 /WEB-INF/lib
하는 자동 등록 자체가 사용하는 웹 애플리케이션의 시작시 ServiceLoader
API를 하지만, 어떤 webapp 종료 중에 자동 등록 취소 하지 않았습니다 . 이 메시지는 순수한 비공식적이며 Tomcat은 이미 메모리 누수 방지 조치를 취했습니다.
당신은 무엇을 할 수 있나요?
이러한 경고는 무시하십시오. Tomcat이 올바르게 작업하고 있습니다. 실제 버그는 귀하의 코드가 아닌 다른 사람의 코드 (문제의 JDBC 드라이버)에 있습니다. Tomcat이 작업을 올바르게 수행하고 JDBC 드라이버 공급 업체가 수정 될 때까지 기다렸다가 드라이버를 업그레이드 할 수있게하십시오. 반면에, 당신은 webapp 's에서 JDBC 드라이버를 삭제하지 말고 /WEB-INF/lib
server 's에서만 삭제해야합니다 /lib
. 여전히 webapp 's에 보관하는 경우을 /WEB-INF/lib
사용하여 수동으로 등록 및 등록 취소해야합니다 ServletContextListener
.
이러한 경고가 발생하지 않도록 Tomcat 6.0.23 이상으로 다운 그레이드하십시오. 그러나 자동으로 메모리 누수를 유지합니다. 결국 그것이 좋은지 확실하지 않습니다. 메모리 누수의 이러한 종류의 뒤에 주요 원인 중 하나 OutOfMemoryError
문제 톰캣 hotdeployments 동안.
JDBC 드라이버를 Tomcat /lib
폴더 로 이동하고 드라이버 를 관리하기 위해 연결 풀링 된 데이터 소스를 갖습니다. Tomcat의 내장 DBCP는 드라이버를 닫을 때 제대로 등록을 취소하지 않습니다. WONTFIX로 닫힌 버그 DBCP-322 도 참조하십시오 . 오히려 DBCP를 DBCP보다 더 잘 수행하는 다른 연결 풀로 교체하고 싶습니다. 예를 들어, HikariCP , BoneCP 또는 Tomcat JDBC Pool이 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다