MySQL Connector/J 5.1.13 Has Been Released!
Mark Matthews <[email protected]> Thu, 24 Jun 2010 10:27:24 -0500
| Newsgroups | gmane.comp.db.mysql.java |
|---|---|
| Message-ID | <[email protected]> |
Hi,
MySQL Connector/J 5.1.13, 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.13 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.13 includes the following changes targeted at =
scalability and performance:
- Fixed Bug#51266 - jdbc:mysql:loadbalance:// would stick to the =
first host in the list in some cases, especially exacerbated if the host =
was down.
- Replaced URLs of the form jdbc:mysql://host-1,host-2 with a =
composite of a normal connection and a jdbc:mysql:loadbalance:// =
connection for more robustness and cleaner code.
- Fixed BUG#51643 - Connections using jdbc:mysql:loadbalance:// would =
have statements (and prepared statements) that did not have their =
connections changed upon commit()/rollback(), and thus applications that =
held statement instances past commit()/rollback() could have data =
written to or read from un-intended connections.
- Fixed BUG#51783 - Load-balanced connections could throw a =
SQLException incorrectly on commit() or rollback(). This was not caused =
by failures in commit or rollback, but rather by the possibility that =
the newly-selected physical connection was stale. Added logic to catch =
and retry if this happens, up to the number of hosts specified for =
load-balancing. Also added new property, =
loadBalanceValidateConnectionOnSwapServer, which controls whether to =
explicitly ping the selected host (otherwise, the host is presumed to be =
up, and will only be noticed if auto-commit or transaction isolation =
state needs to be set and fails).
- Added loadBalancePingTimeout property to allow a specific timeout =
to be set for each ping executed against the servers. This ping is =
executed when the physical connections are rebalanced (commit/rollback =
or communication exception), or when a query starting with (exactly) "/* =
ping */" is executed. The latter causes each open underlying physical =
connection to be pinged.
- Fixed BUG#51776 - Connection.rollback() could swallow exceptions =
incorrectly.
- Fixed BUG#52231 - Differences in definitions of which SQLExceptions =
trigger a failover event could result in failure to try more than a =
single host in certain situations.
- Fixed BUG#52534 - Performance regression using load-balanced =
connection. =20
- More aggressively purge the statement timeout timers after they've =
been cancelled to trade time for memory. This purge only happens if =
statement timeouts are in use.
- Added management of running load-balanced connections. Statistics =
can be obtained, and hosts added/dropped via =
com.mysql.jdbc.ConnectionGroupManager or the JMX implementation. This =
functionality is enabled by setting the new parameter =
"loadBalanceConnectionGroup" to the name of the logical grouping of =
connections.
All load-balanced connections sharing the same =
loadBalanceConnectionGroup value, regardless of how the application =
creates them, will be managed together. To enable JMX-based management, =
set loadBalanceEnableJMX=3Dtrue and ensure that remote JMX is =
enabled in the JRE (eg, use -Dcom.sun.management.jmxremote).
- Added loadBalanceExceptionChecker property, which takes a =
fully-qualified class name implementing the =
com.mysql.jdbc.LoadBalancedExceptionChecker interface. This allows =
custom evaluation of SQLExceptions thrown to determine whether they =
should trigger failover to an alternate host in load-balanced =
deployments. The default is =
com.mysql.jdbc.StandardLoadBalanceExceptionChecker.
- Added two new properties which allow more flexibility in =
determining which SQLExceptions should trigger failover in a =
load-balanced deployment. The new "loadBalanceSQLStateFailover" =
property takes a comma-delimited list of SQLState codes which are =
compared to the SQLState of the SQLException (matching done with =
trailing wildcard), while "loadBalanceSQLExceptionSubclassFailover" =
takes a comma-delimited list of fully-qualified class/interface names, =
against which the SQLException is checked to determine if it is an =
instance of any. Matches trigger failover to an alternate host.
- Fixed Bug#51704 - Re-written batched statements don't honor escape =
processing flag of their creator.
As well as the following general bug fixes and improvements:
- Fixed BUG#51666 - StatementInterceptors were never "un-safed" after =
connection establishment, causing interceptors which returned result =
sets pre/post execution would not work.
- Minor fix in previous patch for Bug#51904. Function =
ConnectionImpl.setCatalog() was passed quoted argument thus breaking =
with "...for the right syntax to use near 'test``'"
=20
- Fix for Bug#51912 - Passing NULL as cat. param to =
getProcedureColumns with !nullCatalogMeansCurrent
=09
- Fix for Bug#52167 - Can't parse parameter list with special =
characters inside
=09
- Fix for Bug#51904 - getProcedureColumns() always returns =
PROCEDURE_CAT result column as NULL
=09
- Fix for Bug#51712 - Display Size is always 0 for columns returned by =
getProcedureColumns()
- Fix for Bug#51908 - db variable might have end up unassigned when =
calling getProcedureColumns()/Functions(). This is a followup on code =
changes made for Bug#51022.
- Fixed Bug#43576 - Sometimes not able to register OUT parameters for =
CallableStatements.
- Fixed Bug#54175 - Driver doesn't support utf8mb4 for servers 5.5.2 =
and newer. The driver now auto-detects servers configured with =
character_set_server=3Dutf8mb4 or treats the Java encoding "utf-8" =
passed via "characterEncoding=3D..." as utf8mb4 in the "SET NAMES=3D" =
calls it makes when establishing the connection.=20
Enjoy!
-Mark
--=20
Mark Matthews
Principal Software Developer - 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]