Release Notes for MariaDB Connector/J 3.4.1
This page is part of MariaDB's Documentation.
The parent of this page is: Release Notes for MariaDB Connector/J 3.4
Topics on this page:
Overview
MariaDB Connector/J is a lightweight JDBC driver (Type 4) for building applications on top of MariaDB database products with Java 8, Java 11, Java 17, and Java 21.
This release is compatible with JDBC 4.2.
MariaDB Connector/J 3.4.1 was released on 2024-07-17. This release is of General Availability (GA) maturity.
Notable Changes
Implementation of pinGlobalTxToPhysicalConnection for XA Connection
The new boolean option pinGlobalTxToPhysicalConnection
, when enabled, ensures that an operation for a specific XID
is routed to the same connection, to permit supporting XA START <xid>
when XA END
has been called.
This prevent errors like:
XA resource 'xaDataSource': resume for XID 'XID: <some id>' raised -5: invalid arguments were given for the XA operation
Enhanced host description
The host description for connecting to the server has been changed from either <host>[:<portnumber>]
or address=(host=<host>)[(port=<portnumber>)][(type=(master|slave))]
to a more detailed host description, permitting to set localsocket, or pipe, and to define a specific SSL mode depending on the host. New format:
address=(host=<host>|localSocket=<socket>|pipe=<namedpipe>)[(port=<portnumber>)][(type=(master|slave))][(sslMode=disable|trust|verify-ca|verify-full)]
Example:
jdbc:mariadb:sequential://address=(localSocket=/socket),address=(host=10.0.0.1)(port=3306)(sslMode=verify-full)/DB
This connection string now permits to use a local UNIX socket if available, and host 10.0.0.1 with SSL if the UNIX socket is not available.
A detailed host description option supersedes a global option description. The previous example can also be written in the following way, defining different SSL modes for both host options:
jdbc:mariadb:sequential://address=(localSocket=/socket)(sslMode=disable),10.0.0.1:3306/DB?sslMode=verify-full
Adding databaseTerm alias
Option useCatalogTerm
has an alias databaseTerm
for MySQL connector compatibility
Issues Fixed
The validation of a statement of the cache for prepared statements is not taking the use of different schemas into account, which can result in unexpected behavior when the same statement is executed on different schemas (CONJ-1181)
DatabaseMetaData.getImportedKeys
returns a differentPK_NAME
value thanDatabaseMetaData.getExportedKeys
when using aNON UNIQUE
constraint (CONJ-1178)Slow performance of function
DatabaseMeta.getExportedKeys()
(CONJ-1180)Android app incompatibility, regex
CANON_EQ
flag is not supported on Android OS (CONJ-1185)Database meta
getSQLKeywords
is listing all reserved keywords, not only the restricted keywords (CONJ-1188)The Function metadata
getImportedKeys
is slow when a database has not been set (CONJ-1191)The Function
ResultSetMetaData.getColumnTypeName()
returns typeVARCHAR
instead of typeTINYTEXT
for columns of typeTINYTEXT
(CONJ-1068)Missing error mapping for errors
XA_RBTIMEOUT
,XA_RBTIMEOUT
, andXA_RBDEADLOCK
(CONJ-1182)