Ini adalah ketidakcocokan antarmuka. javax.sql.DataSource
mendefinisikan metode
default ConnectionBuilder createConnectionBuilder() throws SQLException
Dan sesuai kontrak, nilai pengembalian harus bertipe ConnectionBuilder.
Jika Anda melihat dokumentasi oracle.ucp.jdbc.PoolDataSourceImpl, ini mendefinisikan metode sebagai
public UCPConnectionBuilder createConnectionBuilder()
sedangkan oracle.ucp.jdbc.UCPConnectionBuilder
bukan subtipe dari java.sql.ConnectionBuilder
.
Sekarang kecuali Oracle merilis versi oracle.ucp.jdbc.UCPConnectionBuilder
yang tidak pernah ada antarmuka yang memperluas java.sql.ConnectionBuilder
, Anda tidak akan dapat menukar UCP PoolDataSource dengan javax.sql.DataSource
.
Rilis terbaru pada saat ini tampaknya UCP 19.3 , yang masih akan mengalami masalah yang sama yang disayangkan karena 19.3 diiklankan sebagai sesuai dengan JDK11. Harap laporkan bug terhadap Oracle UCP untuk membuat pengelola mengetahui pendatang baru createConnectionBuilder di antarmuka DataSource.
Sementara itu, jika memungkinkan, Anda dapat kembali menggunakan 11g rilis 2 UCP (bukan 12, bukan 19) yang tidak memiliki metode createConnectionBuilder pada antarmuka PoolDataSource. Bukan situasi yang ideal, karena Anda menyerah pada peningkatan UCP selama satu dekade dengan kembali ke 11g.