MySQL Connector/J 5.1.14 Has Been Released!

Mark Matthews <[email protected]> Tue, 7 Dec 2010 17:21:19 -0600
Newsgroups gmane.comp.db.mysql.java
Message-ID <[email protected]>
Hi,

MySQL Connector/J 5.1.14, a maintenance release of the production 5.1 =
branch has been released. Connector/J is the Type-IV pure-Java JDBC =
driver for MySQL.

Version 5.1.14 is suitable for use with any MySQL version including =
MySQL-5.0, MySQL-5.1 or MySQL-5.5.

It is now available in source and binary form from the Connector/J =
download pages at

http://dev.mysql.com/downloads/connector/j/5.1.html

and mirror sites as well as Maven-2 repositories (note that not all =
mirror sites or repositories may be up to date at this point of time - =
if you can't find this version on some mirror, please try again later or =
choose another download site.)

As always, we recommend that you check the change log

http://dev.mysql.com/doc/refman/5.1/en/cj-news.html

and "Upgrading" sections

http://dev.mysql.com/doc/refman/5.1/en/cj-upgrading.html

in the manual before upgrading as well as the "CHANGES" file in the =
download archive to be aware of changes in behavior that might affect =
your application.

We welcome and appreciate your feedback, bug reports, bug fixes, patches =
etc.:

http://forge.mysql.com/wiki/Contributing

MySQL Connector/J 5.1.14 includes the following changes targeted at =
scalability and performance:

    - Fixed Bug#58706 - Failover connections didn't honor =
"failOverReadOnly=3Dfalse", and in some
      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=3D(key=3Dvalue), supported keys are:

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

       An example would be:

       =
jdbc:mysql://address=3D(protocol=3Dtcp)(host=3Dlocalhost)(port=3D3306)(use=
r=3Dtest)/db

      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 =
com.mysql.jdbc.jdbc2.optional.StatementWrappe.getResultSet()
     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 getvalueNeedsQuoting().
         UpdatableResultSet refresher and updater call upon this value =
now.

   - Fix for Bug#57697 - Metadata getTables() was not checking for =
table_name already been quoted.
   - Fix for Bug#57694 - 3byte UTF8 can not be used with 5.5.3+ server.
=20
   - Fix for Bug#54756 - Cannot retrieve data from ResultSet by column =
name from a Sphinx daemon.
     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=3Dtrue" 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
     Bogdan.

   - Minor fix for Bug#55217, return 4 as a result of=20
     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.

Enjoy!

	-Mark
--=20
Mark Matthews
Principal Software Developer -  MySQL Enterprise Tools
Oracle
http://www.mysql.com/products/enterprise/monitor.html








-- 
MySQL Java Mailing List
For list archives: http://lists.mysql.com/java
To unsubscribe:    http://lists.mysql.com/[email protected]