MySQL Connector/J 5.1.14 がリリースされました


バージョン5.1版でのメンテナンスリリースであるMySQL Connector/J 5.1.14が リリースされました。Connector/Jは、MySQL用のタイプ4のpure-Java JDBCドライバです。













以下は、Connector/J 5.1.14の変更情報です。

- Fixed Bug#58706 - Failover connections didn't honor "failOverReadOnly=false", and in
      situations would not fall back.

   - Added ability to load-balance while auto-commit is enabled.  This
     introduces two new properties:

       loadBalanceAutoCommitStatementThreshold defines the number of matching
       statements which will trigger the driver to (potentially) swap physical
       server connections,

       loadBalanceAutoCommitStatementRegex defines the regular expression
       against which statements must match.  The default values (0 and blank,
       respectively) retain the previously-established behavior that
       connections with auto-commit enabled are never balanced.  Feature
       request documented in Bug#55723.

   - Added support for hosts specified in the URL of the form:
     address=(key=value), supported keys are:

       (protocol=tcp or pipe (for named pipes on Windows)
       (path=[] for named pipes)
       (host=[]) for TCP connections
       (port=[]) for TCP connections

       An example would be:


      Any other parameters are treated as host-specific properties that follow
      the conventions of the JDBC URL properties. This now allows per-host
      overrides of any configuration property for multi-host connections
      (failover, loadbalance, replication). We do recommend that the overrides
      are limited to user, password, network timeouts and statement and
      metadata cache sizes. Unexpected behavior may be observed with other
      per-host overrides.

    - Fix for Bug#56099 - Added support for JDBC4-specific functionality when
      using load-balanced connections.

    - Fix for Bug#56200 - Added diagnostic information to SQLException message
      thrown when a closed load-balanced connection is reused.  This
      information will identify the conditions which caused the connection to
      be closed.

    - Fix for Bug#56429 - When using Connector/J configured for failover
      (jdbc:mysql://host1,host2,... URLs), the non-primary servers re-balance
      and spawned new idle connections when the transactions on the master were
      committed or rolled-back, eventually exceeding max_connections. It was
      also discovered that session state (autocommit, isolation level, catalog)
      wasn't  being copied from the primary connection to secondary
      connections correctly because of the same changes that caused this bug,
      and this was fixed as well.

    - Fix for Bug#56706 - Ensure read-only state is synchronized when new
      load-balanced connections are selected.

    - Fixed Bug#56979 - Improper connection closing logic leads to TIME_WAIT
      sockets on server

As well as the following general bug fixes and improvements:

   - Fix for Bug#58728, NPE in
     if rs is null. Regression test case added to Statement regression tests.

   - Fix for Bug#58751, DatabaseMetadata.getIndexInfo() CARDINALITY now clamped
     to Integer.MAX_VALUE.

   - Fix for BUG#58590

   - Fix for Bug#58232 - CallableStatement fails to fetch OUT parameter against 5.5 server

   - Fix for Bug#57850 - Refresh SELECT statement doesn't use correct data type.
     Added Field.valueNeedsQuoting (private final boolean) and protected boolean
         UpdatableResultSet refresher and updater call upon this value now.

   - Fix for Bug#57697 - Metadata getTables() was not checking for table_name already been
   - Fix for Bug#57694 - 3byte UTF8 can not be used with 5.5.3+ server.
   - Fix for Bug#54756 - Cannot retrieve data from ResultSet by column name from a Sphinx
     We were relying only on "server version string" passed. Now, determining
         server version is done via protocol flags too, where applicable.

   - Fix for Bug#57022 - cannot execute a store procedure with output parameters,
     database parameter was ignored in db.sp notation. The fix is to "sanitize"
         db.sp call just like in patch for noAccessToProcedureBodies. BaseTestCase
         extended with createDatabase and dropDatabase. Regression test added.

   - Fix for Bug#57262 - "useOldUTF8Behavior" behavior was broken since 5.1.3,
     now explicitly sets connection character set to latin1 ("SET NAMES latin1")
     during connection post-handshake process.

   - Patch for problem where "noAccessToProcedureBodies=true" was causing
     "underprivileged" user not to have access to procedures created by him.

   - Patch for Bug#56305, unhandled NPE in DatabaseMetaData.java when calling
     wrong-cased function without access to mysql.proc. Although simple by
     itself, some more enhancements were needed for everything to function
     properly.  So, along with catching potential NPE due to server bug, a
     guard against calling JDBC functions with db_name.proc_name notation was
     also added. Necessary changes added to StringUtils.java too.

   - Minor fix in getProcedureColumns() DisplaySize for Bug#51712. Fix for
     Bug#41269 is not complete without this.  getColumnDisplaySize on a
     ResultSet already consisting of metadata is now functional thanks to

   - Minor fix for Bug#55217, return 4 as a result of 
     DataBaseMetadata.getJDBCMajorVersion() as per manual.

    - Fixed Bug#56955 - Connection properties "trustCertificateKeyStoreType"
      and "clientCertificateKeyStoreType" have invalid defaults, therefore
      connections that specify "useSSL" will sometimes fail with exceptions
      from JSSE unless "JKS" has been specified for both of these properties.
      The default value for these properties is now "JKS", and thus it no
      longer has to be specified.

    - Fixed Bug#57380 - DatabaseMetaData.supportsMultipleResultSets() now returns
      true when connected to a 4.1 version or later server.

    - Removed logging integrations with log4j and apache-commons-logging due to license
      incompatibility. Replacing with SLF4J integration in next release.