sql >> Database teknologi >  >> RDS >> Oracle

Java 11-migrering - createConnectionBuilder() fra PoolDataSourceImpl støder sammen med createConnectionBuilder() fra javax.sql.DataSource

Dette er grænsefladeinkompatibilitet. javax.sql.DataSource definerer en metode

default ConnectionBuilder createConnectionBuilder() throws SQLException

Og i henhold til kontrakten skal returværdien være af typen ConnectionBuilder.

Hvis du kigger på dokumentationen af ​​oracle.ucp.jdbc.PoolDataSourceImpl, definerer den metoden som

public UCPConnectionBuilder createConnectionBuilder()

hvorimod oracle.ucp.jdbc.UCPConnectionBuilder er ikke en undertype af java.sql.ConnectionBuilder .

Medmindre Oracle frigiver en aldrig-version af oracle.ucp.jdbc.UCPConnectionBuilder grænseflade, der udvider java.sql.ConnectionBuilder , vil du ikke være i stand til at udveksle UCP PoolDataSource med javax.sql.DataSource .

Den seneste udgivelse på dette tidspunkt ser ud til at være UCP 19.3 , hvilket stadig ville ramme det samme problem, hvilket er uheldigt, da 19.3 er annonceret som JDK11-kompatibel. Ret en fejl mod Oracle UCP for at gøre vedligeholdere opmærksomme på den nye deltager createConnectionBuilder i DataSource-grænsefladen.

I den mellemliggende periode, hvis det er muligt, kan du falde tilbage til at bruge 11g release 2 af UCP (ikke 12, ikke 19), som ikke har metoden createConnectionBuilder på PoolDataSource-grænsefladen. Ikke en ideel situation, da du opgiver et årti med forbedringer i UCP ved at gå tilbage til 11g.



  1. Hvordan kan jeg få mysql til at udskrive et DateTime til Julian dagnummer?

  2. Få fejl:Du skal installere mindst én postgresql-client-<version>-pakke, når du installerer til heroku

  3. VÆLG fra to tabeller baseret på samme id og grupperet

  4. hvordan får man denne forespørgsel til at returnere rækker med 0 tælleværdi?