ERP와 연동하는 기능이 있는데 ERP를 고도화하면서 DB 버전이 업그레이드 되었습니다.
(window server 2008 -> SQL Server 2017, ERP는 mssql을 사용)
아래와 같은 문제가 발생하여 기존 연동하는 기능이 안되는 증상이 발생했습니다.
오류 내용
com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 원인: java.lang.RuntimeException: Could not generate DH keypair |
상세 오류
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 원인: java.lang.RuntimeException: Could not generate DH keypair
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSChannel.throwSSLConnectionFailed(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at com.caucho.sql.DriverConfig.createDriverConnection(DriverConfig.java:596)
at com.caucho.sql.ManagedConnectionImpl.initDriverConnection(ManagedConnectionImpl.java:242)
at com.caucho.sql.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:131)
at com.caucho.sql.ManagedFactoryImpl.createManagedConnection(ManagedFactoryImpl.java:121)
at com.caucho.jca.ConnectionPool.create(ConnectionPool.java:780)
at com.caucho.jca.ConnectionPool.allocatePool(ConnectionPool.java:649)
at com.caucho.jca.ConnectionPool.allocate(ConnectionPool.java:608)
at com.caucho.jca.ConnectionPool.allocateConnection(ConnectionPool.java:505)
at com.caucho.sql.DataSourceImpl.getConnection(DataSourceImpl.java:65)
at com.caucho.sql.DBPool.getConnection(DBPool.java:624)
원인은 구글링해보니 JDBC호환 문제라고 하네요.
기존에 사용하는 sqljdbc4.jar를 jtds-1.2.5.jar파일로 변경하였습니다.
JDBC 드라이버를 변경했으니 was config설정도 변경해주어야 합니다.
MSSQL JDBC 드라이버 설정 방법
Driver [com.microsoft.sqlserver.jdbc.SQLServerDriver]
URL [jdbc:sqlserver://localhost:1433;DatabaseName=DBNAME]
* JDBC드라이버 : sqljdbc.jar 또는 sqljdbc4.jar (MS-SQL 2008까지 지원)
Driver [net.sourceforge.jtds.jdbc.Driver]
Driver [net.sourceforge.jtds.jdbcx.JtdsDataSource]
URL [jdbc:jtds:sqlserver://localhost:1433/DBNAME;tds=8.0;lastupdatecount=true]
* JDBC드라이버 : jtds-1.2.jar
'DB > MSSQL' 카테고리의 다른 글
설치된 MSSQL 버전 확인하기 (SQL Server) (1) | 2020.04.12 |
---|---|
[MSSQL] 키워드를 컬럼명으로 사용하기 (1) | 2020.04.12 |
mssql 다국어 입력방법 (0) | 2019.06.23 |
MSSQL 락 걸린 쿼리 확인 후 강제 kill하기 (0) | 2019.01.20 |