728x90
반응형
728x90
반응형

 

ORA-28040: No matching authentication protocol

ORA-28040: 일치하는 인증 프로토콜 없음

 

프로젝트 셋팅중 위와 같은 오류가 발생하였는데요.

1. 오류 상세

java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection exception: 
java.sql.SQLException: SQLException in StandardPoolDataSource:getConnection no connection available 
java.sql.SQLException: Cannot get connection for URL jdbc:oracle:thin:@192.168.1.xx:1521:orcl : ORA-28040: No matching authentication protocol

2. 원인

오라클 12c 서버와 클라이언트의 버전차이라고 하네요.

저같은 경우 오라클 11g에서 12c로 업그레이드 한 경우에 발생하였습니다.

 

3. 해결방법

1) jdbc.jar 파일 수정

 : ojdbc14.jar 파일을 jdk 버전에 맞게 ojdbc5~8로 수정하여 서비스 시작.

 

2) SQLNET.ORA 파일 수정

 가. SQLNET.ORA 위치로 이동

  - \app\계정\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora

 나. 텍스트 추가

  - SQLNET.ALLOWED_LOGON_VERSION_SERVER=9
  - SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9

 다. 리스너 재시작

위 방법에도 저는 해결이 안되어 문제를 찾아보니 프로젝트 lib폴더에 ojdbc14.jar 파일이 있었네요...

 

728x90
반응형
728x90
반응형

오라클 10g에서 오라클12c로 업그레이드를 해서 ojbdc.jar를 변경해줘야하는 일이 있었습니다.

저는 oracle12c에 맞는 ojdbc6.jar에서 ojdbc7.jar로 변경해주면 되는 줄 알았습니다.

하지만 ojdbc7.jar로 변경하고 select해본 결과 아래와 같은 오류가 발생했습니다.

Caused by: java.lang.UnsupportedClassVersionError: oracle/jdbc/driver/OracleDriver : Unsupported major.minor version 51.0

구글링 결과

jdk버전에 맞지 않는 lib를 추가해서 발생한 오류였습니다.

즉 jdk버전은 1.6인데 ojdbc7.jar를 사용해서 에러가 발생한 것

 

oracle사이트에 들어가 oracle12c에 맞는 jdk버전을 확인해봤습니다.

 ojdbc7.jar : jdk7 또는 jdk8버전 

 ojdbc6.jar : jdk6버전

https://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html

 

결론은 jdk버전에 따라서 오라클 ojdbc.jar 버전도 달랐던 것이었습니다.

 

jdk 버전에 맞는 jar파일 다운받아서 사용해야합니다.

오라클버전 jdk버전 jar
orcale 12c JDK 1.7이상 ojdbc7.jar
JDK 1.6이상 ojdbc6.jar
oracle 11g JDK 1.6이상 ojdbc6.jar
oracle 10g JDK 1.4, 1.5이상 ojdbc14.jar
728x90
반응형
728x90
반응형

+ Recent posts