sql >> Databasteknik >  >> RDS >> Oracle

Java 11-migrering - createConnectionBuilder() från PoolDataSourceImpl krockar med createConnectionBuilder() från javax.sql.DataSource

Detta är gränssnittsinkompatibilitet. javax.sql.DataSource definierar en metod

default ConnectionBuilder createConnectionBuilder() throws SQLException

Och enligt kontraktet kräver returvärdet vara av typen ConnectionBuilder.

Om du tittar på dokumentationen för oracle.ucp.jdbc.PoolDataSourceImpl, definierar den metoden som

public UCPConnectionBuilder createConnectionBuilder()

medan oracle.ucp.jdbc.UCPConnectionBuilder är inte en undertyp av java.sql.ConnectionBuilder .

Nu om inte Oracle släpper en aldrig-version av oracle.ucp.jdbc.UCPConnectionBuilder gränssnitt som utökar java.sql.ConnectionBuilder , kommer du inte att kunna byta ut UCP PoolDataSource med javax.sql.DataSource .

Den senaste versionen vid det här laget verkar vara UCP 19.3 , vilket fortfarande skulle drabbas av samma problem vilket är olyckligt eftersom 19.3 annonseras som JDK11-kompatibel. Vänligen skapa en bugg mot Oracle UCP för att göra underhållarna medvetna om den nya aktören createConnectionBuilder i DataSource-gränssnittet.

Under tiden, om det är möjligt, kan du falla tillbaka till att använda 11g release 2 av UCP (inte 12, inte 19) som inte har metoden createConnectionBuilder i PoolDataSource-gränssnittet. Inte en idealisk situation, eftersom du ger upp ett decenniums förbättringar av UCP genom att gå tillbaka till 11g.



  1. psycopg2 :markören redan stängd

  2. Skapande av Oracle View med ett databasgenererat ID från ett sekvensobjekt

  3. SQL-fråga för att inkludera specifik WooCommerce-tagg

  4. Ansluta till en fjärrstyrd Oracle DB med Nodejs via Oracledb-drivrutinen