Releases: aws/aws-advanced-jdbc-wrapper
AWS Advanced JDBC Driver - v2.2.4
Changelog
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.2.4] - 2023-08-29
🪄 Added
- Host Availability Strategy to help keep host health status up to date (PR #530).
- Implement
setLoginTimeout
from a suggested enhancement (Discussion #509).
🐛 Fixed
- Allow connecting with reader cluster endpoints for Aurora PostgreSQL versions 13.9 and greater by changing the
AuroraPgDialect
topology query (Issue #593). - Race condition issues between
MonitorThreadContainer#getInstance()
andMonitorThreadContainer#releaseInstance()
(PR #601).
🦀 Changed
- Dynamically sets the default host list provider based on the dialect used. User applications no longer need to manually set the AuroraHostListProvider when connecting to Aurora Postgres or Aurora MySQL databases.
- Deprecated AuroraHostListConnectionPlugin.
- As an enhancement, the wrapper is now able to automatically set the Aurora host list provider for connections to Aurora MySQL and Aurora PostgreSQL databases.
Aurora Host List Connection Plugin is deprecated. If you were using theAuroraHostListConnectionPlugin
, you can simply remove the plugin from thewrapperPlugins
parameter.
However, if you choose to, you can ensure the provider is used by specifying a topology-aware dialect, for more information, see Database Dialects.
- As an enhancement, the wrapper is now able to automatically set the Aurora host list provider for connections to Aurora MySQL and Aurora PostgreSQL databases.
- Propagate
Connection.clearWarnings()
to underlying connections in the Read Write Splitting Plugin so that the connection object does not accumulate warning messages (Issue #547). - Close underlying connections in the Read Write Splitting Plugin after switching to read-write or read-only depending on whether internal connection pooling is used (PR #583).
- Sort plugins by default to prevent plugin misconfiguration. This can be disabled by setting the property
autoSortWrapperPluginOrder
to false (PR #542). - Documentation:
- Clarified AWS JDBC Driver limitations with Blue/Green deployments. See Known Limitations.
- Updated and reworded main README.md page.
AWS Advanced JDBC Driver - v2.2.3
Changelog
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.2.3] - 2023-07-28
🪄 Added
- Developer plugin to help test various scenarios including events like network outages and database cluster failover. This plugin is NOT intended to be used in production environments and is only for testing (PR #531).
- Documentation:
- Developer plugin. See UsingTheJdbcDriver and UsingTheDeveloperPlugin.
- MySQL code samples (PR #532).
- Add a Table of Contents section for the sample codes on README.md. See README.md.
- Sample tutorial and code example for Vert.x. See the tutorial and code example.
- Added Properties section on the README listing all the driver properties and where they are used. See the README.md
AWS Advanced JDBC Driver - v2.2.2
Changelog
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.2.2] - 2023-07-05
🪄 Added
- Official support for Amazon Aurora with MySQL compatibility. The AWS JDBC Driver has been validated to support MySQL JDBC Driver and MariaDB JDBC Driver.
- Documentation:
🦀 Changed
AWS Advanced JDBC Driver - v2.2.1
Changelog
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.2.1] - 2023-6-16
🐛 Fixed
- Move the Spring Wildfly example
gradle.properties
file toexamples/SpringWildflyExample/spring
(Issue #491).
AWS Advanced JDBC Driver - v2.2.0
Changelog
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.2.0] - 2023-6-14
🪄 Added
- Autoscaling and the least connections strategy (PR #451).
- Target driver dialects (PR #452).
- Elastic Load Balancer URL support (PR #476).
- Documentation:
- Using the Driver with plain RDS Databases. See Using the Driver.
- Internal connection pool behaviour only verifying password on initial connection. See Using the Read Write Splitting Plugin Internal Connection Pooling document and code example.
- Link performance test in table of contents. See Documentation Table of Contents.
- Cluster URLs are not internally pooled. See Using Read Write Splitting Plugin Internal Connection Pooling.
- The
leastConnections
strategy in the Using Read Write Splitting Plugin Internal Connection Pooling at point 3.
- Sample code and tutorial for using the driver with:
🐛 Fixed
- Pruned null connections in connection tracker plugins (PR #461).
- HikariCP integration tests and reworked AwsWrapperDataSource by removing property names, introduced a set of simple properties to set database, server name and server port (PR #468).
- Checkstyle failure due to modified license and driver connection provider passing original properties resulting properties being overridden for subsequent connections (PR #471).
- IamAuthConnectionPlugin to properly prioritize the override property IAM_DEFAULT_PORT then Hosts port, and then Dialect port (Issue #473).
- Values for the
wrapperLoggerLevel
parameter are no longer case-sensitive (#PR #481).
🦀 Changed
AWS Advanced JDBC Driver - v2.1.2
Changelog
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.1.2] - 2023-5-21
🦀 Changed
AWS Advanced JDBC Driver - v2.1.1
Changelog
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.1.1] - 2023-5-15
🐛 Fixed
- MySQL reference in code that could impact workflows with other drivers (PR #446).
AWS Advanced JDBC Driver - v2.1.0
Changelog
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.1.0] - 2023-5-11
🪄 Added
- Checks for stale writer records in
AuroraHostListProvider
obtained after writer-failover so that they are not used (PR #435).
🐛 Fixed
- Potential security concern by ensuring that user-specific connections in the connection pool are returned to the correct user (PR #432).
- Connection state transfer bug where switching from read-only connection to writer connection incorrectly triggers the failover process (Issue #426).
- Incorrect invalidation of the newly promoted writer and random readers after failover. EFM plugin to use instance endpoint as the monitoring endpoint in case the initial connection is established using cluster endpoint (PR #431).
- Running Hibernate tests no longer runs unrelated tests (PR #417).
- Reader failover using a shared Properties object resulting in race conditions (PR #436 & PR #438).
- Temporarily setting the socket timeout for the topology query if it is not set, to avoid topology query from executing indefinitely (PR #416).
🦀 Changed
- Removed logic from the failover plugin that changes connection to a writer instance when
setReadOnly(false)
is called on a reader connection (Issue #426). This functionality already exists in the read write splitting plugin. - Removed Multi-writer cluster related code as they are no longer supported (PR #435).
- Clarified documentation on the failover process to account for Aurora PostgreSQL clusters being offline during failover (PR #437).
⚠️ Breaking changes were introduced with the newfailoverMode
configuration parameter (PR #434):- The
failoverMode
parameter replaces theenableFailoverStrictReader
configuration parameter. - If you were previously using
enableFailoverStrictReader=true
, please update it tofailoverMode=strict-reader
. - For more information, please check the (documentation)
- The
AWS Advanced JDBC Driver - v2.0.0
Changelog
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
🪄 Added
- 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.
🐛 Fixed
- Fetched the instance endpoint and added it to the host aliases for connections established using custom domains (Issue #386).
🦀 Changed
- 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.
AWS Advanced JDBC Driver - v1.0.2
Changelog
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.0.2] - 2023-03-31
🪄 Added
- 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.
🐛 Fixed
- 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).
🦀 Changed
- 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.