2022.11.10

MariaDB

MariaDB Connector/J 3.0.9 GA版(リリース日:2022年11月8日)

修正されたバグ

  • WAFFLEを使用してWindowsでGSSAPI認証を行うと、エラーが発生します。
    • 以前のリリースでは、次のエラーが発生しました:
      java.sql.SQLNonTransientConnectionException: (conn=CONNECTION_ID) Could not connect to HOST:PORT : Connection reset
    • このリリース以降、WAFFLEを使用してWindowsでGSSAPI認証を行うと、エラーは発生しません。
  • DatabaseMetaData.getImportedKeys()メソッドが呼び出されると、結果セットのPK_NAME列に実際のキー名がない場合があります。
    • 以前のリリースでは、PK_NAME列は常にnullでした。
    • このリリース以降、SHOW CREATE TABLEステートメントを使用してキー名を取得し、PK_NAME列をプライマリキーの実名に設定します。
  • PreparedStatement.setNull()メソッドがバッチ操作の一部として呼び出されると、操作はバッチ処理されるのではなく、複数の操作に分割されます。
  • ストアドプロシージャがINOUTパラメータで呼び出される時に、CallableStatement.registerOutParameter()メソッドを使用してパラメータを出力パラメータとして登録する前にパラメータの値が設定されている場合、パラメータはNULLとしてサーバーに送信されます。
    • 例えば、以前のリリースでは、次のコードによってパラメータ 1がNULLとしてサーバーに送信されました:
      cstmt = connection.prepareCall(sql);
      cstmt.setLong(1, 42L);
      cstmt.registerOutParameter(1, Types.NUMERIC);
      cstmt.executeQuery();
    • 以前のリリースでは、次のコードのように、パラメータの値を設定する前にCallableStatement.registerOutParameter()メソッドを呼び出すことによって、この問題を回避できました:
      cstmt = connection.prepareCall(sql);
      cstmt.registerOutParameter(1, Types.NUMERIC);
      cstmt.setLong(1, 42L);
      cstmt.executeQuery();
    • このリリース以降、メソッド呼び出しの順序は重要ではありません。
  • PreparedStatement.setTimestamp()メソッドが3番目のパラメータとして指定されたCalendarオブジェクトと並行して複数のスレッドによって呼び出されると、競合状態によってタイムスタンプが正しくなくなる可能性があります。
    • このリリース以降、Calendarオブジェクトは同期されたブロックで使用されるため、競合状態は発生しなくなりました。

MariaDB Connector/J 3.0.9のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/release-notes/mariadb-connector-j-3-0/3-0-9/


MariaDBプロダクト・サポート・サービス

MariaDB
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。