Cannot load JDBC driver class 'net.sf.log4jdbc.DriverSpy'
java.lang.ClassNotFoundException: net.sf.log4jdbc.DriverSpy

Cannot create JDBC driver of class 'net.sf.log4jdbc.sql.jdbcapi.DriverSpy' for connect URL 'jdbc:tibero:thin:@10.12.125.22:8629:DBPAST'
java.sql.SQLException: No suitable driver

 

에러 해결 방법


드라이버의 기능과 목적에 따라 연결 방식과 URL 처리 방식이 다르기 때문.

1. JDBC URL 이름이 : jdbc:tibero~ 이런식이면.

Tibero 데이터베이스와 직접 연결하는 드라이버가 필요하다.
cohttp://m.tmax.tibero.jdbc.TbDriver
jdbc:tibero:// 형식으로 연결되는 URL을 인식한다.

2. JDBC URL 이름이 : jdbc:log4jdbc:tibero

net.sf.log4jdbc.DriverSpy는 SQL 로깅을 위한 드라이버, SQL 쿼리와 결과를 로깅하기 위해서
기존 JDBC 드라이버를 감싸서 연결하는것이 포인트,기존 JDBC드라이버와 결합되어,실제 DB랑 연결 + 쿼리,로깅 역할

cohttp://m.tmax.tibero.jdbc.TbDriver는 실제 Tibero DB 연결을 위한 드라이버이고,
net.sf.log4jdbc.DriverSpy는 SQL 로깅을 위한 감싸는 드라이버

성능상 어떤 드라이버 사용하는것이 좋을까?
실제 DB 연결만 필요하고,SQL 로깅이 필용벗으면 cohttp://m.tmax.tibero.jdbc.TbDriver만 사용하는 것이 성능상 더 유리

결론 -> 로깅을 필요한 경우에만 활성화하고, 프로덕션 환경에서는 로깅을 꺼두는 것이 좋음(그치만 운영업무 시 어떤 오류가 날지 모르지 jdbc설정을 해두고,로그 레벨을 warn또는 error을 이용해서 확인)

예를 들어, log4jdbc에서는 log4jdbc.debug.stackTrace 옵션을 비활성화하여 스택 추적을 하지 않도록 설정하거나, 로깅 레벨을 INFO 또는 ERROR로 설정하여 성능을 최적화할 수 있습니다.

DEBUG: SQL 쿼리와 파라미터 등의 상세 로그를 기록합니다. 성능에 부담이 될 수 있습니다.
INFO: 중요 정보만 기록하며 성능을 향상시킬 수 있습니다.
ERROR: 오류만 기록하여 성능 최적화와 함께 심각한 문제만 로그로 확인할 수 있습니다.

+ Recent posts