기술 정보
home
채널 소개
home

Driver does not support get/set network timeout for connections. 발생

문서 유형
장애 해결
분야
인터페이스/연동
키워드
jdbc
NetworkTimeout
적용 제품 버전
6FS07
1 more property

현상

Azure 환경에서 HikariCP를 사용하여 Tibero JDBC 드라이버를 통해 DB에 연결 시, Driver does not support get/set network timeout for connections. 오류가 발생합니다.

원인

Tibero JDBC 드라이버 버전에 따라 setNetworkTimeout() / getNetworkTimeout() 메서드의 지원 여부가 다르며, 이로 인해 네트워크 타임아웃 설정 시 오류가 발생할 수 있습니다. 각 드라이버별 동작 여부는 다음과 같습니다.
드라이버
결과
tibero6-jdbc.jar
get/setNetworkTimeout() 메서드가 구현되어 있지 않아 해당 기능을 사용할 수 없습니다.
tibero7-jdbc.jar
setNetworkTimeout() 메서드가 인터페이스에는 존재하지만, 실제 구현이 없어 실행 시 오류가 발생합니다. Exception in thread "main" java.lang.AbstractMethodError: com.tmax.tibero.jdbc.driver.TbConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V at TiberoNetworkTimeoutTest.main(TiberoNetworkTimeoutTest.java:16)
tibero7-jdbc-18.jar
setNetworkTimeout() 및 getNetworkTimeout() 메서드 모두 정상적으로 동작합니다. ※ 사용 시 JDK 1.8 이상 필요

해결

tibero7-jdbc-18.jar (JDK 1.8 이상) 사용 시 setNetworkTimeout(), getNetworkTimeout() 모두 정상 동작하므로 해당 버전을 사용합니다.
참고
테스트 방법은 아래와 같습니다.
1. java 파일 생성
vi /home/tibero/tibero7/client/lib/jar/TiberoNetworkTimeoutTest.java 
import java.sql.*; import java.util.concurrent.*; public class TiberoNetworkTimeoutTest { public static void main(String[] args) { String url = "jdbc:tibero:thin:@192.168.29.209:8629:tibero"; String user = "sys"; String password = "tibero"; System.out.println("Step 1: DB 연결 시도 중..."); try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("Step 2: DB 연결 성공!"); Executor executor = Executors.newSingleThreadExecutor(); conn.setNetworkTimeout(executor, 5000); System.out.println("Step 3: setNetworkTimeout 설정 완료!"); int timeout = conn.getNetworkTimeout(); System.out.println("현재 Network Timeout 값: " + timeout); } catch (SQLFeatureNotSupportedException e) { System.out.println("getNetworkTimeout()은 지원되지 않습니다."); } catch (Exception e) { System.out.println("예외 발생:"); e.printStackTrace(); } } }
SQL
복사
2. 컴파일
$ javac TiberoNetworkTimeoutTest.java
3. 실행
$ java -cp .:tibero7-jdbc-18.jar TiberoNetworkTimeoutTest
Step 1: DB 연결 시도 중… Step 2: DB 연결 성공! Step 3: setNetworkTimeout 설정 완료! 현재 Network Timeout 값: 5000
SQL
복사
tibero7-jdbc-14.jar / tibero7-jdbc.jar 파일에서는 실행이 되지 않습니다.
Step 1: DB 연결 시도 중… Step 2: DB 연결 성공! Exception in thread "main" java.lang.AbstractMethodError: com.tmax.tibero.jdbc.driver.TbConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V at TiberoNetworkTimeoutTest.main(TiberoNetworkTimeoutTest.java:16)
SQL
복사