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.
2.0.0 - 2023-04-28
- Read / Write Splitting (Official Release).
- Internal connection pools for the R/W splitting plugin (PR #359)
- Database dialects (PR #372 addresses Issue #341), which allow users to specify the database type to connect to.
- Fetched the instance endpoint and added it to the host aliases for connections established using custom domains (Issue #386).
- Parsed region from ARN (PR #392 addresses Issue #391).
- Updated documentation on:
⚠️ Breaking changes were introduced with the internal connection pool changes (PR #359):- The ConnectionPlugin interface has introduced three new methods: forceConnect, acceptsStrategy, and getHostSpecByStrategy. Although the AbstractConnectionPlugin implements default behavior for these methods, you should consider adding your own implementations if you have implemented a custom ConnectionPlugin. More details on these methods can be found in the ConnectionPlugin Javadocs and the pipelines documentation.
- The HostListProvider interface has introduced a new method: getHostRole. If you have implemented your own HostListProvider, you will need to implement this method. More details on this method can be found in the HostListProvider Javadocs.
1.0.2 - 2023-03-31
- Default list of plugins added to the parameter
wrapperPlugins
(PR #332). - Read-write splitting plugin example using Spring JDBC template. See Read-Write Splitting Spring JDBC Template Example.
- Read-write splitting plugin benchmark and performance results (PR #340 & PR #316).
- Aurora Connection Tracker plugin tracks all opened connections and closes all impacted connections after a failover (PR #298).
- Driver Metadata plugin allows users to override the driver name (PR #371 addresses Issue #370).
- Documentation for the Driver Metadata plugin and Aurora Connection Tracker plugin. See Using The Driver Metadata Connection Plugin & Using The Aurora Connection Tracker Plugin.
- Unwrapped Savepoint objects when passing them in as parameters (Issue #328).
- Added null checks to
WrapperUtils#getConnectionFromSqlObject()
(Issue #348). - Extra question mark in
clusterInstanceHostPattern
parameters is no longer filtered out when setting the connection string (PR #383).
- Lock initialization of
AuroraHostListProvider
(PR #347). - Optimized thread locks and expiring cache for the Enhanced Monitoring Plugin. (PR #365).
- Updated Hibernate sample code to reflect changes in the wrapper source code (PR #368).
- Updated KnownLimitations.md to reflect that Amazon RDS Blue/Green Deployments are not supported. See Amazon RDS Blue/Green Deployments.
1.0.1 - 2023-01-30
- Read / Write Splitting and Load Balancing (Experimental). Ongoing changes are being implemented to mirror behaviour of the community MySQL JDBC driver. We do not recommend using this in production until an official release.
- The Aurora Stale DNS Plugin to prevent the user application from incorrectly opening a new connection to an old writer node when DNS records have not yet updated after a recent failover event. For more details, see Aurora Stale DNS Plugin.
- FailoverSQLException classes for easier error handling. See Read-Write Splitting Postgres Example.
- OSGi compatibility (PR #270).
- AwsCredentialsManager to customize credentials providers used in
IamAuthenticationPlugin
andAwsSecretsManagerPlugin
. For more information, see AWS Credentials Configuration.
DataSourceConnectionProvider
no longer removes user/password properties on connect (Issue #288 and Issue #305).- Runtime exceptions thrown as reported in issue #284.
- Incorrect log message in
PluginServiceImpl#setAvailability
that says host alias not found instead of empty hosts change list. - FailoverTimeoutMS not being obeyed during failover, causing failover to take twice as long (PR #244).
- Reader failover sometimes reconnect to writer instances as reported by Issue #223. Applications can now set the
failoverStrictReader
parameter to only allow failover to reader nodes during the reader failover process. See more details here. - AWS Secrets Manager Plugin leaking PoolingHttpClientConnectionManager (PR #321).
- Internal
inTransaction
flag not being updated whenautocommit
status changes (PR #282). - Incorrect wrapper version returned from
getDriverVersion
calls (PR #319). - Incorrect
setReadOnly
behaviour when the method is called on a closed connection (Issue #311). isCurrentHostWriter
incorrectly return false during writer failover (PR #323).
- Use default connection check intervals/timeouts in the EFM plugin when a user-supplied setting is not available (PR #274).
- Thread-safety improvements within in the EFM plugin (PR #332).
1.0.0 - 2022-10-06
The Amazon Web Services (AWS) Advanced JDBC Driver allows an application to take advantage of the features of clustered Aurora databases.
- Support for PostgreSQL
- The Failover Connection Plugin
- The Host Monitoring Connection Plugin
- The AWS IAM Authentication Connection Plugin
- The AWS Secrets Manager Connection Plugin