sql >> Database >  >> RDS >> Oracle

Java 11-migratie - createConnectionBuilder() van PoolDataSourceImpl botst met createConnectionBuilder() van javax.sql.DataSource

Dit is incompatibiliteit met de interface. javax.sql.DataSource definieert een methode

default ConnectionBuilder createConnectionBuilder() throws SQLException

En volgens het contract moet de retourwaarde van het type ConnectionBuilder zijn.

Als je de documentatie van oracle.ucp.jdbc.PoolDataSourceImpl bekijkt, definieert het de methode als

public UCPConnectionBuilder createConnectionBuilder()

overwegende dat oracle.ucp.jdbc.UCPConnectionBuilder is geen subtype van java.sql.ConnectionBuilder .

Nu, tenzij Oracle een nooit-versie van oracle.ucp.jdbc.UCPConnectionBuilder uitbrengt interface die java.sql.ConnectionBuilder uitbreidt , kunt u UCP PoolDataSource niet uitwisselen met javax.sql.DataSource .

De nieuwste release op dit moment lijkt UCP 19.3 te zijn , die nog steeds hetzelfde probleem zou hebben, wat jammer is omdat 19.3 wordt geadverteerd als JDK11-compatibel. Meld een bug aan tegen Oracle UCP om de beheerders op de hoogte te stellen van de nieuwkomer createConnectionBuilder in de DataSource-interface.

In het kort, als het haalbaar is, kun je terugvallen op het gebruik van 11g release 2 van UCP (niet 12, niet 19) die niet de methode createConnectionBuilder op de PoolDataSource-interface heeft. Geen ideale situatie, aangezien u een decennium aan verbeteringen in UCP opgeeft door terug te gaan naar 11g.



  1. Hoe krijg je alle datums in een maand

  2. Prestatieoverwegingen voor tijdelijke gegevens in Oracle

  3. Een lange tekenreeks invoegen in CLOB-gegevenstype in Oracle

  4. Hoe 'select' te gebruiken in MySQL 'insert' statement