-----BEGIN PGP SIGNED MESSAGE-----
MySQL Connector/J 5.0.3 a new version of the Type-IV all-Java JDBC
driver for MySQL has been released.
This is the first generally-available, production release of Connector/J
5.0. Notice that Connector/J 3.1 has supported all MySQL-5.0 features
other than XA, but this is the first generally-available release that
"synchronizes" version numbers with the server (as well as adding
support for XA).
Version 5.0.3 is suitable for use with any MySQL version including
MySQL-4.1, MySQL-5.0 or MySQL-5.1 beta.
It is now available in source and binary form from the Connector/J
download pages at http://dev.mysql.com/downloads/connector/j/5.0.html
and mirror sites (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.)
Please notice that the download archives are larger than before as we're
now shipping the output of our JUnit release tests and resultant code
coverage in the "docs/release-test-output" subdirectory.
Features/changes of note in this release:
* Support for XA distributed transactions via
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource which is an
implementation of javax.sql.XADataSource.
Notice that depending on whether or not your application server
re-uses the same physical XAConnection for a given global transaction,
you may have to set the datasource configuration parameter
"pinGlobalTxToPhysicalConnection" to "true" so that the driver itself
will maintain this mapping, which also allows the driver to emulate
the JOIN clause to "XA START", which the server currently does not
Our current testing shows that this configuration parameter is
necessary for BEA WebLogic and IBM WebSphere. JBoss has their own
configuration parameter for this, "track-connection-by-tx", see
for more information).
We also recommend that connection pools that will be backing
XAConnections should be configured to test connections on
reserve/checkout and not let connections stay idle for long periods of
time (ideally not at all), due to the current limitations with XA
support in the server as listed here:
* Loosened synchronization to solve a number of deadlock issues in
BUG#18719, BUG#18367, BUG#17709 and BUG#15067. The new strategy
basically makes Connection instances threadsafe and thus shareable
across threads, and anything else threadsafe, but not necessarily
shareable across threads due to JDBC API interactions that can cause
non-obvious behavior and/or deadlock scenarios to occur since
the JDBC API is not designed to be used from multiple threads at once.
Therefore, unless external synchronization is provided, clients should
not allow multiple threads to share a given statement or result set.
Examples of issues with the API itself not being multi-thread suitable
include, but are not limited to race conditions between modifiers and
execution and retrieval methods on statements and result sets that are
not synchronizable such as ResultSet.get*() and traversal methods, or
Statement.execute*() closing result sets without effectively making
the driver itself serialized across the board.
These changes should not have any effect on "normal" J(2)EE use cases
where only one thread ever uses a connection instance and the objects
created by it.
* Implementation of Statement.cancel() and Statement.setQueryTimeout().
Both methods require MySQL-5.0.0 or newer server, require a separate
connection to issue the "KILL QUERY" command, and in the case of
setQueryTimeout() the driver will create a separate thread should the
timer to cancel the query fire to actually login to the server and
cancel the statement.
* Added support for Connector/MXJ integration via url subprotocol
As always, we recommend that you check the change log
(http://dev.mysql.com/doc/refman/5.0/en/cj-news.html) and "Upgrading"
sections (http://dev.mysql.com/doc/refman/5.0/en/cj-upgrading.html) in
the manual before upgrading to be aware of changes in behavior that
might affect your application.
- - From the change log (this release includes changes and fixes from
versions 3.1.13 and 3.1.14):
07-26-06 - Version 5.0.3
- Fixed BUG#20650 - Statement.cancel() causes NullPointerException
if underlying connection has been closed due to server failure.
- Added configuration option "noAccessToProcedureBodies" which will
cause the driver to create basic parameter metadata (all
parameters reported as VARCHAR(65535) IN/OUT and not named) for
CallableStatements when the user does not have access to procedure
bodies via "SHOW CREATE PROCEDURE" or selecting from mysql.proc
instead of throwing an exception. The default value for this
option is "false".
nn-nn-06 - Version 3.1.14
- Fixed BUG#20479 - Updatable result set throws ClassCastException
when there is row data and moveToInsertRow() is called.
- Fixed BUG#20485 - Updatable result set that contains a BIT column
fails when server-side prepared statements are used.
- Fixed BUG#16987 - Memory leak with profileSQL=true.
- Fixed BUG#19726 - Connection fails to localhost when using
timeout and IPv6 is configured.
- Fixed BUG#16791 - NullPointerException in MysqlDataSourceFactory
due to Reference containing RefAddrs with null content.
- Fixed BUG#20306 - ResultSet.getShort() for UNSIGNED TINYINT
returns incorrect values when using server-side prepared
- Fixed BUG#20687 - Can't pool server-side prepared statements,
exception raised when re-using them.
- Fixed BUG#21062 - ResultSet.getSomeInteger() doesn't work for
- Fixed BUG#18880 - ResultSet.getFloatFromString() can't retrieve
values near Float.MIN/MAX_VALUE.
- Fixed BUG#20888 - escape of quotes in client-side prepared
statements parsing not respected. Patch covers more than bug
report, including NO_BACKSLASH_ESCAPES being set, and stacked
quote characters forms of escaping (i.e. '' or "").
- Fixed BUG#19993 - ReplicationDriver does not always round-robin
load balance depending on URL used for slaves list.
05-26-05 - Version 3.1.13
- Fixed BUG#15464 - INOUT parameter does not store IN value.
- Fixed BUG#14609 - Exception thrown for new decimal type when
using updatable result sets.
- Fixed BUG#15544, no "dos" character set in MySQL > 4.1.0
- Fixed BUG#15383 - PreparedStatement.setObject() serializes
BigInteger as object, rather than sending as numeric value
(and is thus not complementary to .getObject() on an UNSIGNED
- Fixed BUG#11874 - ResultSet.getShort() for UNSIGNED TINYINT
returned wrong values.
- Fixed BUG#15676 - lib-nodist directory missing from
package breaks out-of-box build
- Fixed BUG#15854 - DBMD.getColumns() returns wrong type for BIT.
- Fixed BUG#14938 - Unable to initialize character set mapping
Removed reliance on .properties files to hold this information, as
it turns out to be too problematic to code around class loader
hierarchies that change depending on how an application is
deployed. Moved information back into the CharsetMapping class.
- Fixed BUG#16841 - updatable result set doesn't return
AUTO_INCREMENT values for insertRow() when multiple column primary
keys are used. (the driver was checking for the existence of
single-column primary keys and an autoincrement value > 0 instead
of a straightforward isAutoIncrement() check).
- Fixed BUG#17099 - Statement.getGeneratedKeys() throws
NullPointerException when no query has been processed.
- Fixed BUG#13469 - Driver tries to call methods that don't exist on
older and newer versions of Log4j. The fix is not trying to
auto-detect presense of log4j, too many different incompatible
versions out there in the wild to do this reliably.
If you relied on autodetection before, you will need to add
"logger=com.mysql.jdbc.log.Log4JLogger" to your JDBC URL to enable
Log4J usage, or alternatively use the new "CommonsLogger" class to
take care of this.
- Added support for Apache Commons logging, use
"com.mysql.jdbc.log.CommonsLogger" as the value for the "logger"
- LogFactory now prepends "com.mysql.jdbc.log" to log class name if
it can't be found as-specified. This allows you to use "short
names" for the built-in log factories, for example
"logger=CommonsLogger" instead of
- Fixed BUG#15570 - ReplicationConnection incorrectly copies state,
doesn't transfer connection context correctly when transitioning
between the same read-only states.
- Fixed BUG#18041 - Server-side prepared statements don't cause
truncation exceptions to be thrown when truncation happens.
- Added performance feature, re-writing of batched executes for
Statement.executeBatch() (for all DML statements) and
PreparedStatement.executeBatch() (for INSERTs with VALUE clauses
only). Enable by using "rewriteBatchedStatements=true" in your
- Fixed BUG#17898 - registerOutParameter not working when some
parameters pre-populated. Still waiting for feedback from JDBC
experts group to determine what correct parameter count from
getMetaData() should be, however.
- Fixed BUG#17587 - clearParameters() on a closed prepared statement
- Map "latin1" on MySQL server to CP1252 for MySQL > 4.1.0.
- Added additional accessor and mutator methods on
ConnectionProperties so that DataSource users can use same naming
as regular URL properties.
- Fixed BUG#18740 - Data truncation and getWarnings() only returns
last warning in set.
- Improved performance of retrieving BigDecimal, Time, Timestamp and
Date values from server-side prepared statements by creating fewer
short-lived instances of Strings when the native type is not an
exact match for the requested type. Fixes BUG#18496 for
- Fixed BUG#18554 - Aliased column names where length of name > 251
- Fixed BUG#17450 - ResultSet.wasNull() not always reset
correctly for booleans when done via conversion for server-side
- Fixed BUG#16277 - Invalid classname returned for
RSMD.getColumnClassName() for BIGINT type.
- Fixed case where driver wasn't reading server status correctly
when fetching server-side prepared statement rows, which in some
cases could cause warning counts to be off, or multiple result
sets to not be read off the wire.
- Driver now aware of fix for BIT type metadata that went into
MySQL-5.0.21 for server not reporting length consistently
- Fixed BUG#19615, PreparedStatement.setObject(int, Object, int)
doesn't respect scale of BigDecimals.
- Fixed BUG#19282 - ResultSet.wasNull() returns incorrect value
when extracting native string from server-side prepared statement
generated result set.
- Fixed BUG#19568 - ResultSet.getSomeNumeric() didn't work for the
- Fixed BUG#19724 - Updatable result set fails when server is in
MySQL AB, Software Development Manager - Client Connectivity
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v220.127.116.11 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
|• MySQL Connector/J 5.0.3 Has Been Released||Mark Matthews||27 Jul|