728x90
반응형
톰캣 구동시 SQLServer JDBC memory leak 에러가 발생하면서 서비스 구동실패
환경정보
- 윈도우 서버 2012 R2
- JDK 11
- Tomcat 8.5
증상
catalina.log 확인결과 SQLServer JDBC memory leak 에러가 발생하면서 톰캣 서비스 구동이 실패하는 증상발생
09:34:42.476 INFO [Thread-12] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
09:34:42.535 INFO [Thread-12] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
09:34:42.578 INFO [Thread-12] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
09:34:43.418 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
09:34:43.583 INFO [Thread-12] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
09:34:43.583 INFO [Thread-12] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
09:34:43.645 INFO [Thread-12] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
09:34:43.645 INFO [Thread-12] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]
원인
JDK 11로 개발/운영환경이 설정되어 있으나 SQLServer JDBC는 JDK 8 버전으로 설정되어 있어 발생하는 것으로 파악됨. - mssql-jdbc-6.4.0.jre8.jar
해결방법
JDK 11을 지원하는 JDBC 로 변경하여서 해결완료(mssql-jdbc-6.4.0.jre8.jar -> mssql-jdbc-10.2.0.jre11.jar)
<!-- maven - pom.xml 설정 -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
정리
JAVA가 하위호환이 아주 잘되어 있지만 설정되어 있는 자바버전과 어플리케이션의 라이브러리들의 버전을 맞추어 주는 것이 가장 좋은듯 하다.
728x90
반응형
'개발 > Java' 카테고리의 다른 글
MooInfo - OSHI를 이용한 JavaSwing기반의 OS 모니터링 Application (0) | 2022.11.11 |
---|---|
dextupload 이미지업로드 플러그인 사용시 java.lang.IllegalArgumentException: input == null! 발생 (0) | 2022.04.13 |
[SQLServer] 최신 JDBC(10.2.0) 사용시 SSL(Secure Sockets Layer) 암호화 에러발생 (2) | 2022.02.24 |
SpringBoot 시작시 com.mysql.jdbc.Driver. This is deprecated 경고메세지 발생 (0) | 2022.02.10 |
Base64.encodeBase64String 메서드 - Gradle 빌드에러 (0) | 2022.01.28 |