2016-09-27 4 views
2

일부 Oracle 12c 데이터베이스와 연결하기 위해 WSO2 Data Services (3.5.1) 서버를 사용하고 있습니다. 그러나 레거시를 지원하려면 10g 및 8i와 같은 다른 버전에도 연결해야합니다.DSS가 다른 Oracle 데이터베이스 버전에 연결할 수 없습니다.

ORA-28040: No matching authentication protocol (버전 12에서 SHA 알고리즘에 의한 변경)을 ojdbc6.jar 또는 사용 :
8i
12c가 제공
10g 작품을 작동합니다

문제가 ojdbc14.jar 드라이버, 데이터 소스를 사용하여,있다 ojdbc7.jar :
10g 작품
12c 작품
8i을 제공합니다 솔루션을 검색

org.wso2.carbon.ndatasource.common.DataSourceException: Error establishing data source connection: 4 
... 
Caused by: java.sql.SQLException: 4 
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:290) 
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:702) 
... 
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4 
    at oracle.jdbc.driver.T4C8TTIdty.<init>(T4C8TTIdty.java:491) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1434) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486) 
... 

, 나는 12C 데이터베이스에서 오라클/네트워크/관리자/SQLNET.ORA 파일에서 매개 변수 SQLNET.ALLOWED_LOGON_VERSION=8을 설정하고 ojdbc14.jar를 사용하여, 몇 가지 대안을 찾았지만 인한 인프라했습니다 이 접근법은 허용되지 않습니다.

DSS에서 두 드라이버를 동시에 사용하는 방법이 있는지, 다른 OracleDriver 클래스를 확장하는 사용자 정의 Java 클래스를 지정하고 DSS 클래스 로더를 구성하는 방법이 있는지 알고 싶습니다. 다른 해결책이 필요합니다.

도움을 주시면 감사하겠습니다.

답변

1

이것은 oracle 드라이버의 알려진 역 호환성 제한 1, 2이며 해결 방법으로 wso2 DSS에는 해결책이 없습니다. 이것은 Oracle version compatibility matrix에 분명히 명시되어 있습니다.

오라클 버전 (예 : oracle 드라이버 10)에서 작동 할 수있는 구형 ojdbc 드라이버의 다른 버전을 사용해 보셨습니까? 모든 기능이 작동하는 것은 아니지만 모든 데이터베이스에 연결하여 문제없이 기본을 실행할 수 있습니다.