From: Mark Matthews
Date: January 21 2010 9:08pm
Subject: MySQL Connector/J 5.1.11 Has Been Released!
List-Archive: http://lists.mysql.com/announce/657
Message-Id: <45691078-9D34-4C9C-B51E-841B6D836563@sun.com>
MIME-Version: 1.0
Content-Type: text/plain; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT
Hi,
MySQL Connector/J 5.1.11, 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.11 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 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.11 includes the following changes targeted at scalability and performance:
- Fix for BUG#50288 - NullPointerException possible during invalidateCurrentConnection() for load-balanced connections.
- Fix for BUG#48605 - Ping for load balanced connections leaves closed connections in liveConnections, causing subsequent Exceptions when that connection is used.
- Fix for BUG#48442 - Load-balanced Connection object returns inconsistent results for hashCode() and equals() dependent upon state of underlying connections.
- Fix for BUG#48172 - Batch rewrite requires space immediately after "VALUES"
- Fix for BUG#48486 Cannot use load balanced connections with MysqlConnectionPoolDataSource.
- "Replication" connections (those with URLs that start with
jdbc:mysql:replication) now use a jdbc:mysql:loadbalance connection
under the hood for the slave "pool". This also means that one can set
load balancing properties such as "loadBalanceBlacklistTimeout" and
"loadBalanceStrategy" to choose a mechanism for balancing the load and
failover/fault tolerance strategy for the slave pool. This work was done
in order to fix Bug#49537.
- Fixed Bug#36565 - permgen leak from java.util.Timer. Unfortunately no great
fix exists that lets us keep the timer shared amongst connection instances, so
instead it's lazily created if need be per-instance, and torn down when the
connection is closed.
- Fixed BUG#49700 - Connections from ConnectionPoolDataSource don't
maintain any values set with "sesssionVariables=...". This was a bug
in Connection.changeUser()/resetServerState(), we now resubmit the
session variables during the execution of these methods.
(special thanks to Todd Farmer from the Sun/MySQL support team for the numerous fixes to load-balanced connections!)
As well as the following general bug fixes and improvements:
- Fix for BUG#49607 - Provide Connection context in ExceptionInterceptor.
- Fix for BUG#49745 - deleteRow() for updatable result sets can cause full table scan because escaped hex values are used for primary key identifiers.
- Fix for Bug#32525 - "noDatetimeStringSync" doesn't work for server-side prepared statements. Now it does.
- Hooked up exception interceptors so they get called now.
- Rev'd the statement interceptor interface to pass on some server flags, warning counts and errors. See
the com.mysql.jdbc.StatementInteceptorsV2 interface for more details. The driver will create adaptors to
transparently convert older implementations to the newer interface at runtime.
- Statement Interceptors are now enabled at connection instantiation, but
can not return result sets (they will be ignored) until the connection
has bootstrapped itself. If during the init() method your interceptor
requires access to the connection itself, it should ensure that methods
that might throw exceptions if the connection is closed should handle
this in a robust manner.
- Statement Interceptors didn't completely intercept server-side prepared statements.
Enjoy!
-Mark
--
Mark Matthews, Architect - Enterprise Tools
MySQL @ Sun Microsystems, Inc., http://www.sun.com/mysql/