문서유형ㅣ장애해결
분야ㅣ인터페이스/연동
적용제품버전ㅣ6FS07
문서번호ㅣTIITS008
현상
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.javaimport 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(); } } }2. 컴파일$ javac TiberoNetworkTimeoutTest.java3. 실행$ java -cp .:tibero7-jdbc-18.jar TiberoNetworkTimeoutTestStep 1: DB 연결 시도 중… Step 2: DB 연결 성공! Step 3: setNetworkTimeout 설정 완료! 현재 Network Timeout 값: 5000tibero7-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)