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.