WSO2 Data Services (3.5.1) サーバーを使用して、いくつかの Oracle 12c データベースに接続しています。ただし、レガシーをサポートするには、10g や 8i などの異なるバージョンにも接続する必要があります。
ojdbc14.jar
ドライバーを使用すると、datasources:
8i
works
10g
worksという問題があります
12c
: ORA-28040: No matching authentication protocol
(バージョン 12 での SHA アルゴリズムの変更による)
ojdbc6.jar
or 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)
...
解決策を探しているSQLNET.ALLOWED_LOGON_VERSION=8
と、12c データベースの oracle/network/admin/sqlnet.ora ファイルにパラメーターを設定して を使用することで、いくつかの代替手段を見つけましojdbc14.jar
たが、インフラストラクチャの制限により、このアプローチは受け入れられません。
DSS で両方のドライバーを同時に使用する方法があるかどうかを知りたいです。おそらく、異なるOracleDriver
クラスを拡張するカスタム Java クラスを指定し、DSS クラス ローダーを構成するか、または別のソリューションを使用します。
どんな助けでも大歓迎です。