All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.15 - 2024-06-06
- Exception thrown when using IAM authentication and CN RDS URL (Issue #579).
1.1.14 - 2024-03-04
- Documentation regarding the differences between the AWS JDBC Driver and the AWS JDBC Driver for MySQL (PR #554).
- Support for China endpoint patterns (PR #543).
- Statement cancel waits for statement to finish before cancelling (Issue #527).
1.1.13 - 2024-01-19
- Upstream changes from MySQL 8.0.32 and 8.0.33 community driver. The upstream 8.0.33 changes include a security fix for CVE-2023-21971 - RCE and Unauthorized DB Access.
1.1.12 - 2023-12-21
- Experimental Enhanced Host Monitoring Plugin v2, which is a redesign of the original Enhanced Host Monitoring Plugin and addresses memory leaks and high CPU usage during monitoring sessions (PR #513).
1.1.11 - 2023-11-02
- Documentation regarding known limitations with Amazon Aurora Global Databases (PR #482).
- Batch execute with in-line comments resulting in unexpected errors (Issue #464).
- Setting query timeouts while connecting to reader cluster endpoints resulting in errors (PR #474).
- Incorrectly generated keys after executing batch and individual statements (Issue #484).
1.1.10 - 2023-10-04
- Documentation regarding the
enableFailoverStrictReader
parameter (Issue #456.
- Incorrect BatchUpdateException.getUpdateCounts() on failed batch statement execution (Issue #450).
1.1.9 - 2023-07-31
- Documentation:
- The
keepSessionStateOnFailover
failover property to allow retaining the connection session state after failover without manually reconfiguring a connection (Issue #425).
- Avoid updating topology during global transactions which caused JTA transactions to fail (Issue #292).
- Keep
currentHostIndex
and hosts list in sync and pick a new connection when host role changes (Issue #303). - Redundant reset statement called due to incorrect condition (Issue #422).
1.1.8 - 2023-06-28
- The topology service cache no longer stores connection specific properties so connections to the same cluster will not connect with the wrong properties (Issue #407).
- Fixed value
convertToNull
being rejected for propertyzeroDateTimeBehavior
because of capitalization (Issue #411). - Handle case in the
FailoverConnectionPlugin
where thecurrentHostIndex
is equal toNO_CONNECTION_INDEX
(Issue #417).
1.1.7 - 2023-05-11
- Removed the
isMultiWriterCluster
flag as multi-writer clusters are end of life since February 2023 (PR #405).
- Fixed methods passing proxy statement objects by adding checks to unwrap them before casting to a
ClientPreparedStatement
(Issue #401).
1.1.6 - 2023-04-28
- Refactored resource shutdown for
DatabaseMetaDataUsingInfoSchema
andCallableStatement
(PR #388 & PR #390). - Upgraded
com.github.vlsi.license-gather
from 1.77 to 1.87 andjunit-jupiter-engine
from 5.8.2 to 5.9.2 (PR #378 & PR #355). - Excluded
SampleApplication
from distribution jar (PR #392). - Updated README with list of database engine versions tested against (here).
- Fixed
AuroraTopologyService
to use fallback timestamp when the topology query results in an invalid timestamp during daylight savings (Issue 386).
1.1.5 - 2023-03-31
- Optimized thread locks and expiring cache for the Enhanced Monitoring Plugin (PR #356, PR #373).
- Checked log level to avoid unnecessary resource allocation (PR #367).
- Updated README.md with the following
clusterInstanceHostPattern
failover parameter example (here).- Latest Maven Central URLs for direct download of the jar file, using the driver as a Maven dependency, and using the driver as a Gradle dependency.
- DBeaver instructions on how to enable database selectors in the UI (here).
- Clarified that the driver does not support custom RDS clusters (here).
- Clarified Amazon RDS Blue/Green Deployments are not supported (here).
- Only update topology for specific methods so that certain workflows are not interrupted (Issue 363).
- Fixed methods passing in JdbcConnection proxies by adding checks before casting to ConnectionImpl (Issue 365).
- Fixed AWSSecretsManagerPlugin to update ConnectionProxy HostInfo openInitialConnection to prevent access denied errors (Issue 361).
1.1.4 - 2023-01-27
- Close AWS Secrets Manager Client. This prevents the leaking
PoolingHttpClientConnectionManager
issue described in (Issue #343). - Changed the criteria for updating topology and connection switching to not rely on
isFailoverEnabled()
since it may be using a stale topology (PR #345). - Make EFM variables thread-safe (PR #332).
1.1.3 - 2023-01-05
- Removed "SNAPSHOT" from the full version name. Issue 318
- Fixed incorrect driver classpath in README.md
- Fixed failure detection interval in EFM
- Shading to -sources.jar to reflect the main jar which is shaded
1.1.2 - 2022-11-22
- Upstream changes from MySQL 8.0.31 community driver.
- A new
enableFailoverStrictReader
parameter so the driver only reconnects to reader nodes after a failover.
- Upgraded dependency versions
- Updated FailoverConnectionPlugin license.
- Fixed plugin factories package names in the README.
- Resolved an issue where the driver attempts to query for the topology during a prepared transaction.Issue 292
- Resolved an issue where distinct ClientPreparedStatement objects incorrectly have the same hashCode.Issue 308
- Fixed the writer failover process where the driver reconnects to a reader node due to outdated topology information.
- Fixed some incorrect log messages.
- Enhanced logging to avoid unnecessary String format calls.
1.1.1 - 2022-09-22
- Upgraded dependency versions
- Resolved an issue where failover was taking longer than expected when the driver was used with certain versions of HikariCP. Issue 254.
- Resolved an issue where the EFM plugin occasionally threw a NullPointerException while stopping the monitor context. Issue 209.
- Fixed a bug where the AWS Secrets Manager Plugin was not checking nested exceptions when determining if the exception was caused by an unsuccessful login attempt.
- Fixed a bug where failover could take up to two times the length of the failoverTimeoutMs connection property.
- Fixed an incorrect URL template for DBeaver in README.md.
- Fixed some incorrect log messages.
1.1.0 - 2022-06-29
- Upgraded the driver to use AWS Java SDK v.2.17.165.
- Resolved an issue related to
abort
,close
, andisClosed
by filtering out methods that do not require failover. Issue 206. - Resolved an issue where
max_allowed_packet
on the server wasn't being respected by the driver. Issue 191. - Resolved a concurrency issue with the Aurora toplogy cache. Issue 188.
- Resolved an issue where non-network errors were not propagated during failover.
1.0.0 - 2022-03-01
- Upstream changes from MySQL 8.0.28 community driver.
- Hikari connection pool integration tests have been added.
- Docker containers are now created as part of testing and used to run both unit and integration tests.
- Failover performance metrics tracked based on a cluster. With options to enable additional performance metrics per instance.
- Failover functionality refactored into a connection plugin.
- Enhanced Failure Monitoring connection status check.
0.4.0 - 2021-12-14
- Ability to execute additional or supplementary logic related to a
Connection
through Connection Plugin Manager. More details can be found here. Tutorial on writing custom connection plugin can be found here. - Enhanced Failure Monitoring for improved failure detection.
- NetworkFailuresFailoverIntegrationTest now uses environment variables to match FailoverIntegrationTest and ReplicationFailoverIntegrationTest.
- Updated all dependencies.
- Removed
jboss-as-connector
dependency for more up-to-date dependencyjavassist
.
0.3.0 - 2021-11-18
- AWS IAM Authentication is now supported. Usage instructions can be found here.
- Enforce Java 8 in the build process.
- Resolved an issue for when connecting with an invalid connection after a valid connection. Users were able to connect with cached information after a valid connection despite providing invalid information.
- Flakey tests.
0.2.0 - 2021-08-30
- Upstream changes from MySQL 8.0.23 community driver.
- Clarifications and improvements to README.md.
- Potential Breaking Change: Loading of XML external entities are not loaded by default. Users must explictly allow it through using the new "allowXmlUnsafeExternalEntity" connection URL parameter. It is recommended that users verify external entities before loading them.
setAwsProtocolOnly
changed to be static method.
0.1.0 - 2021-01-06
- This driver is based on the MySQL 8.0.21 community driver. The driver is cluster aware for Amazon Aurora MySQL. It takes advantage of Amazon Aurora's fast failover capabilities, reducing failover times from minutes to seconds.