sql >> データベース >  >> RDS >> Oracle

Java 11の移行-PoolDataSourceImplのcreateConnectionBuilder()がjavax.sql.DataSourceのcreateConnectionBuilder()と衝突します

    これはインターフェースの非互換性です。 javax.sql.DataSource メソッド を定義します

    default ConnectionBuilder createConnectionBuilder() throws SQLException
    

    また、コントラクトに従って、戻り値はConnectionBuilderタイプである必要があります。

    oracle.ucp.jdbc.PoolDataSourceImplのドキュメントを見ると、メソッドは

    として定義されています。
    public UCPConnectionBuilder createConnectionBuilder()
    

    一方、oracle.ucp.jdbc.UCPConnectionBuilder java.sql.ConnectionBuilderのサブタイプではありません 。

    これで、Oracleがoracle.ucp.jdbc.UCPConnectionBuilderの決してバージョンをリリースしない限り java.sql.ConnectionBuilderを拡張するインターフェース 、UCPPoolDataSourceをjavax.sql.DataSourceと交換することはできません。 。

    この時点での最新リリースは、UCP 19.3のようです。 、19.3がJDK11準拠としてアドバタイズされているため、残念ながら同じ問題が発生します。 Oracle UCPに対してバグを発生させて、メンテナにDataSourceインターフェイスの新規エントリcreateConnectionBuilderを認識させてください。

    イントリムでは、可能であれば、PoolDataSourceインターフェースにメソッドcreateConnectionBuilderを持たないUCPの11gリリース2(12ではなく19ではない)の使用にフォールバックすることができます。 11gに戻ることでUCPの10年分の改善をあきらめているため、理想的な状況ではありません。



    1. MySQLビューの作成、ビューの置換、およびビューステートメントの削除を例に

    2. USER_SOURCEoracleのLINEのようなSQLサーバーの行番号

    3. PHPでのMySQLデータベースのバックアップと復元

    4. SQLServerパフォーマンスファイルのIO統計