Fixed can't use XAConnection
for local
transactions when no global transaction is in progress. (Bug#17401)
Fixed driver fails on non-ASCII platforms. The driver was
assuming that the platform character set would be a superset
of MySQL's latin1
when doing the
handshake for authentication, and when reading error
messages. We now use Cp1252 for all strings sent to the
server during the handshake phase, and a hard-coded mapping
of the language
systtem variable to the
character set that is used for error messages. (Bug#18086)
Fixed ConnectionProperties
(and thus some
subclasses) are not serializable, even though some J2EE
containers expect them to be. (Bug#19169)
Fixed MysqlValidConnectionChecker
for
JBoss doesn't work with
MySQLXADataSources
. (Bug#20242)
Better caching of character set converters (per-connection) to remove a bottleneck for multibyte character sets.
Added connection/datasource property
pinGlobalTxToPhysicalConnection
(defaults
to false
). When set to
true
, when using
XAConnections
, the driver ensures that
operations on a given XID are always routed to the same
physical connection. This allows the
XAConnection
to support XA START
... JOIN
after XA END
has been
called, and is also a workaround for transaction managers
that don't maintain thread affinity for a global transaction
(most either always maintain thread affinity, or have it as
a configuration option).
MysqlXaConnection.recover(int flags)
now
allows combinations of
XAResource.TMSTARTRSCAN
and
TMENDRSCAN
. To simulate the
「scanning」 nature of the interface, we return
all prepared XIDs for TMSTARTRSCAN
, and
no new XIDs for calls with TMNOFLAGS
, or
TMENDRSCAN
when not in combination with
TMSTARTRSCAN
. This change was made for
API compliance, as well as integration with IBM WebSphere's
transaction manager.