2017-07-14 3 views
0

ojdbc14.jarを使用してOracle 10.2.0.3データベースに接続するJBoss 7(Java 1.7)の下でアプリケーションを実行しています。JBossは2つのバージョンが2つのモジュールにある正しいモジュールからOracle DataSourceドライバを使用しません

同じアプリケーションで別のOracleデータベース(12.1.0.2)に接続する必要があります。そのためにはojdbc7.jarです。 (; ojdbc#.jar.indexファイルが作成されます彼らは)

D:\Jboss\jboss-7.2.0.Final\modules\com\Oracle\ojdbc7\main\ojdbc7.jar 
D:\Jboss\jboss-7.2.0.Final\modules\com\Oracle\ojdbc14\main\ojdbc14.jar 

module.xmlファイルが正しいと仮定します

各Oracleドライバjar

は、独自のJBossモジュールに入れました。 standalone.xml

、私は<drivers>の下に次のことを宣言:私のデータソースの

   <driver name="oracle14" module="com.oracle.ojdbc14"> 
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
        <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
       </driver> 
       <driver name="oracle7" module="com.oracle.ojdbc7"> 
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
        <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
       </driver> 

を、私は次のようでした:Oracleの12データソースに対して実行しようとすると

<datasource jndi-name="java:jboss/datasources/OracleTen" pool-name="OracleTen-DEV" enabled="true" use-java-context="true"> 
    <connection-url>jdbc:oracle:thin:@ORACLE10DEV:49125:databasename</connection-url> 
    <driver>oracle14</driver> 
    ... 
</datasource> 
<datasource jndi-name="java:jboss/datasources/OracleTwelve" pool-name="OracleTwelve-DEV" enabled="true" use-java-context="true"> 
    <connection-url>jdbc:oracle:thin:@ORACLE12DEV:1521:databasename</connection-url> 
    <driver>oracle7</driver> 
    ... 
</datasource> 

、それは使用していますオラクル10ドライバは、コード投げによって証明される:

Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocol 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278) 
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:294) 
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:357) 
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:439) 
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) 
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) 
at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:254) 
... 18 more 

oracle14ドライバとそれを使用するデータソースをstandalone.xmlにコメントアウトすると、Oracle 12データソースは期待通りに動作します。

これは何らかのクラスローダーの問題だと思いますが、この問題を解決するモジュールではありませんでしたか?両方とも問題なく接続できるようにするにはどうすればよいですか?

Oracle 12のドライバにOracle 10のデータソースを依存させようとはまだ試みていません。

答えて

1

ojdbc14.jarを削除します。両方/すべてのモジュールでojdbc7.jarを使用してください。

12.1.0.2ドライバは、10.2.0.3サーバと下位互換性があります。 this page

行列は10.2をカバーしていないが、それは言う:私たちはお勧め

ベストプラクティスは、JDBCドライバのバージョンは、常にOracleデータベースのバージョンがあることと同じかよりも高いのいずれかである必要があり、ありますJDBCドライバの最新の機能を活用するために使用されます。

+0

完了。仕事をしているようだ。ありがとう。 – JoshDM

関連する問題