728x90
반응형

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
728x90
반응형

+ Recent posts