MariaDB has now 2 new options to permit identifying deadlock :
New options
|=includeInnodbStatusInDeadlockExceptions|add "SHOW ENGINE INNODB STATUS" result to exception trace when having a deadlock exception.\\//Default: false//
|=includeThreadDumpInDeadlockExceptions|add thread dump to exception trace when having a deadlock exception.\\//Default: false//
==== [CONJ-639] the option "enabledSslProtocolSuites" now include TLSv1.2 by default
previous default value was "TLSv1, TLSv1.1", disabling TLSv1.2 by default, due to a corrected issue (MDEV-12190) with servers using YaSSL - not openSSL. Server error was .
Now, the default value is "TLSv1, TLSv1.1, TLSv1.2". So TLSv1.2 can be use directly.
Connecting MySQL community server use YaSSL without correction, and connection might result in SSLException: "Unsupported record version Unknown-0.0".
==== [CONJ-642] disable the option "useBulkStmts" by default
Using useBulkStmts permit faster batch, but cause one major issue : Batch return -1 = SUCCESS_NO_INFO
Different option use this information for optimistic update, and cannot confirm if update succeed or not.
This option still makes sense, since for big batch is way more faster, but will not be activated by default.
=== Minor change:
* [CONJ-628] optimization to read metadata faster
* [CONJ-637] java.sql.Driver class implement DriverPropertyInfo[] getPropertyInfo, permitting listing options on querying tools
* [CONJ-639] enabledSslProtocolSuites does not include TLSv1.2 by default
* [CONJ-641] update maven test dependencies for java 10 compatibility
* [CONJ-643] PreparedStatement::getParameterMetaData always returns VARSTRING as type resulting in downstream libraries interpreting values wrongly
=== Bug correction:
* [CONJ-616] correction on possible NPE on getConnection when using failover configuration and master is down, not throwing a proper exception
* [CONJ-636] Error in batch might throw a NPE and not the proper Exception
== 2.2.6
minor change:
* [CONJ-623] Increase connection logging when Primary node connection fails
* [CONJ-384] Permit knowing affected rows number, not only real changed rows
New options
|=useAffectedRows|default correspond to the JDBC standard, reporting real affected rows. if enable, will report "affected" rows. example : if enable, an update command that doesn't change a row value will still be "affected", then report.\\//Default: false. Since 2.2.6//
Bug correction:
* [CONJ-624] MariaDbPoolDataSource possible NPE on configuration getter
* [CONJ-623] Increase connection logging when Primary node connection fails
* [CONJ-622] The option "connectTimeout" must take in account DriverManager.getLoginTimeout() when set
* [CONJ-621] wrong escaping when having curly bracket in table/field name
* [CONJ-618] Client preparestatement parsing error on escaped ' / " in query
== 2.2.5
minor change:
[CONJ-602] Add server hostname to connection packet for proxy
[CONJ-604] handle support for mysql 8.0 tx_isolation replacement by transaction_isolation
* [CONJ-602] Add server hostname to connection packet for proxy
* [CONJ-604] handle support for mysql 8.0 tx_isolation replacement by transaction_isolation
Bug correction:
[CONJ-613] Connection using "replication" Parameters fail when no slave is available
[CONJ-595] Create option to configure DONOR/DESYNCED Galera nodes to be unavailable for load-balancing
[CONJ-605] Newlines where breaking calling stored procedures
[CONJ-609] Using getDate with function DATE_ADD() with parameter using string format where return wrong result using binary protocol
[CONJ-610] Option "allowMasterDownConnection" improvement on connection validation and Exceptions on master down
* [CONJ-613] Connection using "replication" Parameters fail when no slave is available
* [CONJ-595] Create option to configure DONOR/DESYNCED Galera nodes to be unavailable for load-balancing
* [CONJ-605] Newlines where breaking calling stored procedures
* [CONJ-609] Using getDate with function DATE_ADD() with parameter using string format where return wrong result using binary protocol
* [CONJ-610] Option "allowMasterDownConnection" improvement on connection validation and Exceptions on master down
== 2.2.4
Minor changes:
[CONJ-580] Some options are missing in documentation like default 'autocommit' value
[CONJ-597] Internal exchanges send utf8mb4 with server even if default server collation is not utf8/utf8mb4
[CONJ-600] Upgrading non mandatory Waffle dependency to 1.9.0 (windows GSSAPI authentication)
[CONJ-575] test addition to ensure YaSSL downgrade TLSv1.2 protocol to TLSv1.1
* [CONJ-580] Some options are missing in documentation like default 'autocommit' value
* [CONJ-597] Internal exchanges send utf8mb4 with server even if default server collation is not utf8/utf8mb4
* [CONJ-600] Upgrading non mandatory Waffle dependency to 1.9.0 (windows GSSAPI authentication)
* [CONJ-575] test addition to ensure YaSSL downgrade TLSv1.2 protocol to TLSv1.1
== 2.2.3
Bug correction:
[CONJ-583] possible hang indefinitely using master/slave configuration and failover occur
[CONJ-586] erroneous transaction state when first command result as error
[CONJ-587] using allowMasterDownConnection option can lead to NPE when using setReadOnly()
[CONJ-588] using option 'allowMasterDownConnection' won't permit to connect if master is down
[CONJ-534] Connection.isValid() must be routed to Master and Slave connections to avoid any server timeout
* [CONJ-583] possible hang indefinitely using master/slave configuration and failover occur
* [CONJ-586] erroneous transaction state when first command result as error
* [CONJ-587] using allowMasterDownConnection option can lead to NPE when using setReadOnly()
* [CONJ-588] using option 'allowMasterDownConnection' won't permit to connect if master is down
* [CONJ-534] Connection.isValid() must be routed to Master and Slave connections to avoid any server timeout
== 2.2.2
Bug correction:
[CONJ-564] Never ever throw an instance of java.lang.Error
[CONJ-579] Keywords missing from DatabaseMetaData.getSQLKeywords()
[CONJ-567] UrlParser.initialUrl gets overwritten
[CONJ-571] Permit java 9 serialization filtering
[CONJ-574] forcing using toLowerCase/toUpperCase with Locale.ROOT
[CONJ-560] Automatic module name for java 9
[CONJ-578] windows testing using all mariadb server
[CONJ-570] Add tests for 10.3.3 INVISIBLE column
* [CONJ-564] Never ever throw an instance of java.lang.Error
* [CONJ-579] Keywords missing from DatabaseMetaData.getSQLKeywords()
@@ -106,7 +106,7 @@ The following options are currently supported.
|=user|Database user name. \\//since 1.0.0//|
|=password|Password of database user.\\//since 1.0.0//|
|=rewriteBatchedStatements| For insert queries, rewrite batchedStatement to execute in a single executeQuery.\\example:\\{{{insert into ab (i) values (?)}}} with first batch values = 1, second = 2 will be rewritten\\{{{insert into ab (i) values (1), (2)}}}. \\\\If query cannot be rewriten in "multi-values", rewrite will use multi-queries : {{{INSERT INTO TABLE(col1) VALUES (?) ON DUPLICATE KEY UPDATE col2=?}}} with values [1,2] and [2,3]" will be rewritten\\{{{INSERT INTO TABLE(col1) VALUES (1) ON DUPLICATE KEY UPDATE col2=2;INSERT INTO TABLE(col1) VALUES (3) ON DUPLICATE KEY UPDATE col2=4}}}\\\\when active, the useServerPrepStmts option is set to false\\//Default: false. Since 1.1.8//|
|=connectTimeout| The connect timeout value, in milliseconds, or zero for no timeout.\\//Default: 0. Since 1.1.8//|
|=connectTimeout| The connect timeout value, in milliseconds.\\//Default: DriverManager.getLoginTimeout() value if set or 30s. Since 1.1.8//|
|=useServerPrepStmts|Queries are prepared on the server side before executing, permitting faster execution next time. \\if rewriteBatchedStatements is set to true, this option will be set to false.\\//Default: true. Since 1.3.0//|
|=useBatchMultiSend|*Not compatible with aurora* Driver will can send queries by batch. \\If disable, queries are send one by one, waiting for result before sending next one. \\If enable, queries will be send by batch corresponding to option useBatchMultiSendNumber value (default 100) or according to server variable @@max_allowed_packet if packet size cannot permit to send as many queries. Results will be read afterwhile, avoiding a lot of network latency when client and server aren't on same host. \\\\ There is 2 differents use case : JDBC executeBatch() and when option useServerPrepStmts is enable and MariaDB server >= 10.2.1, PREPARE commands will be delayed, to send PREPARE + EXECUTE in the same packet. This option if mainly effective when client is distant from server. [[./use-batch-multi-send-description.creole|more information]]\\//Default: true (false if using aurora failover). Since 1.5.0//|
\\
...
...
@@ -137,7 +137,7 @@ See [[use-mariadb-connector-j-driver.creole#using-pooling|using pooling]] for mo
|=keyPassword|Password for the private key in client certificate keyStore. (only needed if private key password differ from keyStore password).\\//Since 1.5.3//|
|=trustStore|File path of the trustStore file (similar to java System property "javax.net.ssl.trustStore"). (legacy alias trustCertificateKeyStoreUrl)\\Use the specified file for trusted root certificates.\\When set, overrides serverSslCert.\\//Since 1.3.4//|
|=trustStorePassword|Password for the trusted root certificate file (similar to java System property "javax.net.ssl.trustStorePassword").\\(legacy alias trustCertificateKeyStorePassword).\\//Since 1.3.4//|
|=enabledSslProtocolSuites|Force TLS/SSL protocol to a specific set of TLS versions (comma separated list). \\Example : "TLSv1, TLSv1.1, TLSv1.2"\\//Default: TLSv1, TLSv1.1. Since 1.5.0//|
|=enabledSslProtocolSuites|Force TLS/SSL protocol to a specific set of TLS versions (comma separated list). \\Example : "TLSv1, TLSv1.1, TLSv1.2"\\//Default: TLSv1, TLSv1.1" before 2.3.0, "TLSv1, TLSv1.1, TLSv1.2" since v2.3.0". Since 1.5.0//|
|=enabledSslCipherSuites|Force TLS/SSL cipher (comma separated list).\\ Example : "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"\\//Default: use JRE ciphers. Since 1.5.0//|
\\
...
...
@@ -183,6 +183,10 @@ See [[use-mariadb-connector-j-driver.creole#using-pooling|using pooling]] for mo
|=continueBatchOnError| When executing batch queries, must batch continue on error and throw exception when ended, or stop immediately \\//Default: true. Since 1.4.0//
|=disableSslHostnameVerification| When using ssl, driver check hostname against the server's identity as presented in the server's Certificate (checking alternative names or certificate CN) to prevent man-in-the-middle attack. This option permit to deactivate this validation.\\//Default: false. Since 2.1.0//
|=autocommit|Set default autocommit value.\\//Default: true. Since 2.2.0//
|=galeraAllowedState|Usually, Connection.isValid just send an empty packet to server, and server send a small response to ensure connectivity. When this option is set, connector will ensure Galera server state "wsrep_local_state" correspond to allowed values (separated by comma). example "4,5", recommended is "4". see [galera state](http://galeracluster.com/documentation-webpages/nodestates.html#node-state-changes) to know more..\\//Default: empty. Since 2.2.5//
|=useAffectedRows|default correspond to the JDBC standard, reporting real affected rows. if enable, will report "affected" rows. example : if enable, an update command that doesn't change a row value will still be "affected", then report.\\//Default: false. Since 2.2.6//
|=includeInnodbStatusInDeadlockExceptions|add "SHOW ENGINE INNODB STATUS" result to exception trace when having a deadlock exception\\//Default: false. Since 2.3.0//
|=includeThreadDumpInDeadlockExceptions|add thread dump to exception trace when having a deadlock exception\\//Default: false. Since 2.3.0//