Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Java 11-Migration – createConnectionBuilder() aus PoolDataSourceImpl kollidiert mit createConnectionBuilder() aus javax.sql.DataSource

Dies ist eine Schnittstelleninkompatibilität. javax.sql.DataSource definiert eine Methode

default ConnectionBuilder createConnectionBuilder() throws SQLException

Und laut Vertrag muss der Rückgabewert vom Typ ConnectionBuilder.

sein

Wenn Sie sich die Dokumentation von oracle.ucp.jdbc.PoolDataSourceImpl ansehen, wird die Methode als

definiert
public UCPConnectionBuilder createConnectionBuilder()

wohingegen oracle.ucp.jdbc.UCPConnectionBuilder ist kein Untertyp von java.sql.ConnectionBuilder .

Jetzt, es sei denn, Oracle veröffentlicht eine Never-Version von oracle.ucp.jdbc.UCPConnectionBuilder Schnittstelle, die java.sql.ConnectionBuilder erweitert , können Sie UCP PoolDataSource nicht mit javax.sql.DataSource austauschen .

Die neueste Version zu diesem Zeitpunkt scheint UCP 19.3 zu sein , was immer noch auf das gleiche Problem stoßen würde, was unglücklich ist, da 19.3 als JDK11-kompatibel beworben wird. Bitte melden Sie einen Fehler gegen Oracle UCP, um die Betreuer auf den Neuzugang createConnectionBuilder in der DataSource-Schnittstelle aufmerksam zu machen.

In der Zwischenzeit können Sie, wenn es möglich ist, auf die Verwendung von 11g Release 2 von UCP (nicht 12, nicht 19) zurückgreifen, das nicht über die Methode createConnectionBuilder auf der PoolDataSource-Schnittstelle verfügt. Keine ideale Situation, da Sie ein Jahrzehnt voller Verbesserungen in UCP aufgeben, indem Sie zu 11g zurückkehren.