The Amazon Web Services (AWS) JDBC Driver has been redesigned as an advanced JDBC wrapper.
The wrapper is complementary to an existing JDBC driver and aims to extend the functionality of the driver to enable applications to take full advantage of the features of clustered databases such as Amazon Aurora. In other words, the AWS Advanced JDBC Wrapper does not connect directly to any database, but enables support of AWS and Aurora functionalities on top of an underlying JDBC driver of the user’s choice. This approach enables service-specific enhancements, without requiring users to change their workflow and existing JDBC driver tooling.
The AWS Advanced JDBC Wrapper provides modular functionality through feature plugins, with each plugin being relevant to specific database services based on their architecture and capabilities. For example, AWS Identity and Access Management (IAM) authentication is supported across multiple services, while AWS Secrets Manager applies to services that support password-based authentication. The fast failover plugin provides reduced recovery time during failover for Aurora PostgreSQL and Aurora MySQL clusters.
Benefits of the AWS Advanced JDBC Wrapper for All Aurora and RDS Database Services
Seamless AWS Authentication Service Integration
Built-in support for AWS Identity and Access Management (IAM) authentication eliminates the need to manage database passwords, while AWS Secrets Manager integration provides secure credential management for services that require password-based authentication.
Seamless Query Caching Integration
The driver includes Remote Query Cache Plugin that stores cacheable read-only query results in a remote Valkey cache along with support for plain username/password authentication and IAM authentication with AWS ElastiCache. Applications can opt‑in per query using a SQL query hint that specifies a time‑to‑live (TTL).
Preserve Existing Workflows
The wrapper design allows developers to continue using their preferred JDBC drivers and existing database code while gaining service-specific enhancements. No application rewrites are required.
Modular Plugin Architecture
The plugin-based design ensures applications only load the functionality they need, reducing dependencies and overhead.
Benefits of the AWS Advanced JDBC Wrapper for Aurora PostgreSQL, Aurora MySQL, and RDS
Faster Failover and Reduced Downtime
For Aurora PostgreSQL, Aurora MySQL, and RDS Multi-AZ DB clusters, the driver significantly reduces connection recovery time during database failovers. By maintaining a real-time cache of cluster topology and bypassing DNS resolution delays, applications can reconnect to healthy database instances in seconds rather than minutes.
Enhanced Failure Detection
The driver includes Enhanced Failure Monitoring (EFM) that proactively monitors database node health, detecting failures faster than traditional timeout-based approaches. This allows applications to respond to issues before they impact end users.
Using the AWS Advanced JDBC Wrapper with…
Amazon Aurora PostgreSQL and Aurora MySQL
The AWS Advanced JDBC Wrapper provides fast failover capabilities for Aurora PostgreSQL and Aurora MySQL clusters, significantly reducing connection recovery time during database failovers.
The AWS RDS Multi-AZ DB Clusters are capable of switching over the current writer node to another node in the cluster within approximately 1 second or less, in case of minor engine version upgrade or OS maintenance operations. The AWS Advanced JDBC Wrapper has been optimized for such fast failover when working with AWS RDS Multi-AZ DB Clusters.
With the failover plugin, the downtime during certain DB cluster operations, such as engine minor version upgrades, can be reduced to one second or even less with finely tuned parameters. It supports both MySQL and PostgreSQL clusters.
The AWS Advanced JDBC Wrapper also provides limited functionality for RDS provided databases that are not Aurora, see the compatability matrix for details.
RDS Proxy
As of version 3.0.0 the Simple R/W Splitting Plugin can be used with RDS Proxy.
There are limitations with the AWS Advanced JDBC Wrapper and RDS Proxy. This is currently intended, by design, since the main reason is that RDS Proxy transparently re-routes requests to a single database instance.
RDS Proxy decides which database instance is used based on many criteria (on a per-request basis).
Due to this, functionality like Failover, Enhanced Host Monitoring, and Read/Write Splitting is not compatible since the driver relies on cluster topology and RDS Proxy handles this automatically.
The driver remains useful with RDS Proxy for authentication workflows, such as IAM authentication and AWS Secrets Manager integration.
See Compatibility for compatibility information and refer to the using plugins documentation for details.
For more information on how to download the AWS Advanced JDBC Wrapper, minimum requirements to use it,
and how to integrate it within your project and with your JDBC driver of choice, please visit the
Getting Started page.
<!-- Add the following dependency to your pom.xml, -->
<!-- replacing LATEST with the specific version as required -->
<dependency>
<groupId>software.amazon.jdbc</groupId>
<artifactId>aws-advanced-jdbc-wrapper</artifactId>
<version>LATEST</version>
</dependency>
A Secret ARN has the following format: arn:aws:secretsmanager:<Region>:<AccountId>SecretName-6RandomCharacters
Logging
Enabling logging is a very useful mechanism for troubleshooting any issue one might potentially experience while using the AWS Advanced JDBC Wrapper.
In order to learn how to enable and configure logging, check out the Logging section.
Documentation
Technical documentation regarding the functionality of the AWS Advanced JDBC Wrapper will be maintained in this GitHub repository.
Since the AWS Advanced JDBC Wrapper requires an underlying JDBC driver, please refer to the individual driver’s documentation for driver-specific information.
Using the AWS Advanced JDBC Wrapper
To find all the documentation and concrete examples on how to use the AWS Advanced JDBC Wrapper, please refer to the AWS Advanced JDBC Wrapper Documentation page.
Known Limitations
Amazon RDS Blue/Green Deployments
Support for Blue/Green deployments using the AWS Advanced JDBC Wrapper requires specific metadata tables. The following service versions provide support for Blue/Green Deployments:
Supported Aurora MySQL Versions: Engine Release 3.07 and above.
Please note that Aurora Global Database and RDS Multi-AZ clusters with Blue/Green deployments is currently not supported. For detailed information on supported database versions, refer to the Blue/Green Deployment Plugin Documentation.
Examples
Description
Examples
Using the AWS Advanced JDBC Wrapper to get a simple connection
If you encounter a bug with the AWS Advanced JDBC Wrapper, we would like to hear about it.
Please search the existing issues to see if others are also experiencing the issue before reporting the problem in a new issue. GitHub issues are intended for bug reports and feature requests.
When opening a new issue, please fill in all required fields in the issue template to help expedite the investigation process.
Set up your environment by following the directions in the Development Guide.
To contribute, first make a fork of this project.
Make any changes on your fork. Make sure you are aware of the requirements for the project (e.g. do not require Java 7 if we are supporting Java 8 and higher).
Create a pull request from your fork.
Pull requests need to be approved and merged by maintainers into the main branch. Note: Before making a pull request, run all tests and verify everything is passing.
Code Style
The project source code is written using the Google checkstyle, and the style is strictly enforced in our automation pipelines. Any contribution that does not respect/satisfy the style will automatically fail at build time.
Releases
The aws-advanced-jdbc-wrapper has a regular monthly release cadence. A new release will occur during the last week of each month. However, if there are no changes since the latest release, then a release will not occur.
Aurora Engine Version Testing
This aws-advanced-jdbc-wrapper is being tested against the following Community and Aurora database versions in our test suite:
Database
Versions
MySQL
8.0.36
PostgreSQL
16.2
Aurora MySQL
- Default version. To check the default version, open the RDS “Create database” page in the AWS console and check the pre-selected database version.
Amazon Web Services (AWS) JDBC Driver
The Amazon Web Services (AWS) JDBC Driver has been redesigned as an advanced JDBC wrapper.
The wrapper is complementary to an existing JDBC driver and aims to extend the functionality of the driver to enable applications to take full advantage of the features of clustered databases such as Amazon Aurora. In other words, the AWS Advanced JDBC Wrapper does not connect directly to any database, but enables support of AWS and Aurora functionalities on top of an underlying JDBC driver of the user’s choice. This approach enables service-specific enhancements, without requiring users to change their workflow and existing JDBC driver tooling.
The AWS Advanced JDBC Wrapper is targeted to work with any existing JDBC driver. Currently, the AWS Advanced JDBC Wrapper has been validated to support the PostgreSQL JDBC Driver, MySQL JDBC Driver, and MariaDB JDBC Driver.
The AWS Advanced JDBC Wrapper provides modular functionality through feature plugins, with each plugin being relevant to specific database services based on their architecture and capabilities. For example, AWS Identity and Access Management (IAM) authentication is supported across multiple services, while AWS Secrets Manager applies to services that support password-based authentication. The fast failover plugin provides reduced recovery time during failover for Aurora PostgreSQL and Aurora MySQL clusters.
Benefits of the AWS Advanced JDBC Wrapper for All Aurora and RDS Database Services
Seamless AWS Authentication Service Integration
Built-in support for AWS Identity and Access Management (IAM) authentication eliminates the need to manage database passwords, while AWS Secrets Manager integration provides secure credential management for services that require password-based authentication.
Seamless Query Caching Integration
The driver includes Remote Query Cache Plugin that stores cacheable read-only query results in a remote Valkey cache along with support for plain username/password authentication and IAM authentication with AWS ElastiCache. Applications can opt‑in per query using a SQL query hint that specifies a time‑to‑live (TTL).
Preserve Existing Workflows
The wrapper design allows developers to continue using their preferred JDBC drivers and existing database code while gaining service-specific enhancements. No application rewrites are required.
Modular Plugin Architecture
The plugin-based design ensures applications only load the functionality they need, reducing dependencies and overhead.
Benefits of the AWS Advanced JDBC Wrapper for Aurora PostgreSQL, Aurora MySQL, and RDS
Faster Failover and Reduced Downtime
For Aurora PostgreSQL, Aurora MySQL, and RDS Multi-AZ DB clusters, the driver significantly reduces connection recovery time during database failovers. By maintaining a real-time cache of cluster topology and bypassing DNS resolution delays, applications can reconnect to healthy database instances in seconds rather than minutes.
Enhanced Failure Detection
The driver includes Enhanced Failure Monitoring (EFM) that proactively monitors database node health, detecting failures faster than traditional timeout-based approaches. This allows applications to respond to issues before they impact end users.
Using the AWS Advanced JDBC Wrapper with…
Amazon Aurora PostgreSQL and Aurora MySQL
The AWS Advanced JDBC Wrapper provides fast failover capabilities for Aurora PostgreSQL and Aurora MySQL clusters, significantly reducing connection recovery time during database failovers.
Visit Using Failover 2 for more details.
Amazon RDS Multi-AZ DB Clusters
The AWS RDS Multi-AZ DB Clusters are capable of switching over the current writer node to another node in the cluster within approximately 1 second or less, in case of minor engine version upgrade or OS maintenance operations. The AWS Advanced JDBC Wrapper has been optimized for such fast failover when working with AWS RDS Multi-AZ DB Clusters.
With the
failoverplugin, the downtime during certain DB cluster operations, such as engine minor version upgrades, can be reduced to one second or even less with finely tuned parameters. It supports both MySQL and PostgreSQL clusters.Visit Support for RDS MultiAZ for more details.
Using the AWS Advanced JDBC Wrapper with Amazon Aurora Global Databases
As of version 3.0.0, the driver supports in-region
failoverand cross-regionplanned failoverandswitchoverof Amazon Aurora Global Databases. A Global Writer Endpoint is also recognized and can be handled to minimize potential stale DNS issues. Please check failover plugin, failover2 plugin and Aurora Initial Connection Strategy plugin for more information.For detailed configuration instructions, see Aurora Global Databases.
Plain Amazon RDS databases
The AWS Advanced JDBC Wrapper also provides limited functionality for RDS provided databases that are not Aurora, see the compatability matrix for details.
RDS Proxy
As of version 3.0.0 the Simple R/W Splitting Plugin can be used with RDS Proxy. There are limitations with the AWS Advanced JDBC Wrapper and RDS Proxy. This is currently intended, by design, since the main reason is that RDS Proxy transparently re-routes requests to a single database instance. RDS Proxy decides which database instance is used based on many criteria (on a per-request basis). Due to this, functionality like Failover, Enhanced Host Monitoring, and Read/Write Splitting is not compatible since the driver relies on cluster topology and RDS Proxy handles this automatically.
The driver remains useful with RDS Proxy for authentication workflows, such as IAM authentication and AWS Secrets Manager integration. See Compatibility for compatibility information and refer to the using plugins documentation for details.
Visit Using Plain RDS for more details.
Getting Started
For more information on how to download the AWS Advanced JDBC Wrapper, minimum requirements to use it, and how to integrate it within your project and with your JDBC driver of choice, please visit the Getting Started page.
Maven Central
You can find our driver by searching in The Central Repository with GroupId and ArtifactId software.amazon:aws-advanced-jdbc-wrapper.
Properties
appIdOktaAuthPlugin.APP_IDauditLoggingEnabledEncryptionConfig.AUDIT_LOGGING_ENABLEDautoSortWrapperPluginOrderPropertyDefinition.AUTO_SORT_PLUGIN_ORDERawsProfilePropertyDefinition.AWS_PROFILEbgBaselineMsBlueGreenStatusProvider.BG_INTERVAL_BASELINE_MSbgdIdBlueGreenConnectionPlugin.BGD_IDbgConnectTimeoutMsBlueGreenConnectionPlugin.BG_CONNECT_TIMEOUTbgDropBlueConnectionsBlueGreenStatusProvider.BG_DROP_BLUE_CONNECTIONSbgHighMsBlueGreenStatusProvider.BG_INTERVAL_HIGH_MSbgIncreasedMsBlueGreenStatusProvider.BG_INTERVAL_INCREASED_MSbgSwitchoverTimeoutMsBlueGreenStatusProvider.BG_SWITCHOVER_TIMEOUT_MSclusterIdRdsHostListProvider.CLUSTER_IDclusterInstanceHostPatternRdsHostListProvider.CLUSTER_INSTANCE_HOST_PATTERNclusterTopologyHighRefreshRateMsRdsHostListProvider.CLUSTER_TOPOLOGY_HIGH_REFRESH_RATE_MSclusterTopologyRefreshRateMsRdsHostListProvider.CLUSTER_TOPOLOGY_REFRESH_RATE_MSconnectTimeoutPropertyDefinition.CONNECT_TIMEOUTconnectionPoolTypePropertyDefinition.CONNECTION_POOL_TYPEcustomEndpointInfoMaxRefreshRateMsCustomEndpointPlugin.CUSTOM_ENDPOINT_INFO_MAX_REFRESH_RATE_MScustomEndpointInfoRefreshRateBackoffFactorCustomEndpointPlugin.CUSTOM_ENDPOINT_INFO_REFRESH_RATE_BACKOFF_FACTORcustomEndpointInfoRefreshRateMsCustomEndpointPlugin.CUSTOM_ENDPOINT_INFO_REFRESH_RATE_MSdataCacheTriggerConditionDataLocalCacheConnectionPlugin.DATA_CACHE_TRIGGER_CONDITIONdataKeyCacheEnabledEncryptionConfig.DATA_KEY_CACHE_ENABLEDdataKeyCacheExpirationMsEncryptionConfig.DATA_KEY_CACHE_EXPIRATION_MSdataKeyCacheMaxSizeEncryptionConfig.DATA_KEY_CACHE_MAX_SIZEcacheEndpointAddrRwCacheConnection.CACHE_RW_ENDPOINT_ADDRcacheEndpointAddrRoCacheConnection.CACHE_RO_ENDPOINT_ADDRcacheUseSSLCacheConnection.CACHE_USE_SSLcacheTlsCaCertPathCacheConnection.CACHE_TLS_CA_CERT_PATHcacheUsernameCacheConnection.CACHE_USERNAMEcachePasswordCacheConnection.CACHE_PASSWORDcacheNameCacheConnection.CACHE_NAMEcacheIamRegionCacheConnection.CACHE_IAM_REGIONcacheMaxQuerySizeRemoteQueryCachePlugin.CACHE_MAX_QUERY_SIZEcacheConnectionTimeoutMsCacheConnection.CACHE_CONNECTION_TIMEOUTcacheConnectionPoolSizeCacheConnection.CACHE_CONNECTION_POOL_SIZEcacheKeyPrefixCacheConnection.CACHE_KEY_PREFIXfailWhenCacheDownCacheConnection.FAIL_WHEN_CACHE_DOWNcacheInFlightWriteSizeLimitBytesCacheMonitor.CACHE_IN_FLIGHT_WRITE_SIZE_LIMITcacheHealthCheckInHealthyStateCacheMonitor.CACHE_HEALTH_CHECK_IN_HEALTHY_STATEdatabasePropertyDefinition.DATABASEdefaultHostAvailabilityStrategyHostAvailabilityStrategyFactory.DEFAULT_HOST_AVAILABILITY_STRATEGYenableClusterAwareFailoverFailoverConnectionPlugin.ENABLE_CLUSTER_AWARE_FAILOVERenableTelemetryPropertyDefinition.ENABLE_TELEMETRYendpointSubstitutionRoleAuroraInitialConnectionStrategyPlugin.ENDPOINT_SUBSTITUTION_ROLEenhancedLogQueryEnabledLogQueryConnectionPlugin.ENHANCED_LOG_QUERY_ENABLEDencryptionMetadataSchemaEncryptionConfig.ENCRYPTION_METADATA_SCHEMAfailoverClusterTopologyRefreshRateMsFailoverConnectionPlugin.FAILOVER_CLUSTER_TOPOLOGY_REFRESH_RATE_MSfailoverModeFailoverConnectionPlugin.FAILOVER_MODEfailoverReaderConnectTimeoutMsFailoverConnectionPlugin.FAILOVER_READER_CONNECT_TIMEOUT_MSfailoverReaderHostSelectorStrategyFailoverConnectionPlugin.FAILOVER_READER_HOST_SELECTOR_STRATEGYfailoverTimeoutMsFailoverConnectionPlugin.FAILOVER_TIMEOUT_MSFailover Plugin v2
failoverWriterReconnectIntervalMsFailoverConnectionPlugin.FAILOVER_WRITER_RECONNECT_INTERVAL_MSfailureDetectionCountHostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNTfailureDetectionEnabledHostMonitoringConnectionPlugin.FAILURE_DETECTION_ENABLEDfailureDetectionIntervalHostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVALfailureDetectionTimeHostMonitoringConnectionPlugin.FAILURE_DETECTION_TIMEgdbRwHomeRegionGdbReadWriteSplittingPlugin.RW_HOME_REGIONgdbRwRestrictReaderToHomeRegionGdbReadWriteSplittingPlugin.RESTRICT_READER_TO_HOME_REGIONgdbRwRestrictWriterToHomeRegionGdbReadWriteSplittingPlugin.RESTRICT_WRITER_TO_HOME_REGIONglobalClusterInstanceHostPatternsGlobalAuroraHostListProvider.GLOBAL_CLUSTER_INSTANCE_HOST_PATTERNSGlobal Database (GDB) Failover Plugin
hostAvailabilityStrategyInitialBackoffTimeHostAvailabilityStrategyFactory.HOST_AVAILABILITY_STRATEGY_INITIAL_BACKOFF_TIMEhostAvailabilityStrategyMaxRetriesHostAvailabilityStrategyFactory.HOST_AVAILABILITY_STRATEGY_MAX_RETRIESiamAccessTokenPropertyNameIamAuthConnectionPlugin.IAM_TOKEN_PROPERTY_NAMEiamDefaultPortIamAuthConnectionPlugin.IAM_DEFAULT_PORTiamExpirationIamAuthConnectionPlugin.IAM_EXPIRATIONiamHostIamAuthConnectionPlugin.IAM_HOSTiamIdpArnOktaAuthPlugin.IAM_IDP_ARNiamRegionIamAuthConnectionPlugin.IAM_REGIONiamRoleArnFederatedAuthPlugin.IAM_ROLE_ARNiamRoleArnOktaAuthPlugin.IAM_ROLE_ARNidpEndpointFederatedAuthPlugin.IDP_ENDPOINTidpEndpointOktaAuthPlugin.IDP_ENDPOINTidpPortFederatedAuthPlugin.IDP_PORTinactiveClusterWriterEndpointSubstitutionRoleAuroraInitialConnectionStrategyPlugin.INACTIVE_CLUSTER_WRITER_SUBSTITUTION_ROLEinitialConnectionHostSelectorStrategyAuroraInitialConnectionStrategyPlugin.HOST_SELECTOR_STRATEGYkeyManagementMaxRetriesEncryptionConfig.KEY_MANAGEMENT_MAX_RETRIESkeyManagementRetryBackoffBaseMsEncryptionConfig.KEY_MANAGEMENT_RETRY_BACKOFF_BASE_MSkms.regionEncryptionConfig.KMS_REGIONlimitlessConnectMaxRetriesLimitlessConnectionPlugin.MAX_RETRIESlimitlessGetTransactionRouterInfoMaxRetriesLimitlessConnectionPlugin.GET_ROUTER_MAX_RETRIESlimitlessGetTransactionRouterInfoRetryIntervalMsLimitlessConnectionPlugin.GET_ROUTER_RETRY_INTERVAL_MILLISlimitlessTransactionRouterMonitorDisposalTimeMsLimitlessRouterServiceImpl.MONITOR_DISPOSAL_TIME_MSlimitlessTransactionRouterMonitorIntervalMsLimitlessConnectionPlugin.INTERVAL_MILLISlimitlessWaitForTransactionRouterInfoLimitlessConnectionPlugin.WAIT_FOR_ROUTER_INFOloginTimeoutPropertyDefinition.LOGIN_TIMEOUTmetadataCacheEnabledEncryptionConfig.METADATA_CACHE_ENABLEDmetadataCacheExpirationMinutesEncryptionConfig.METADATA_CACHE_EXPIRATION_MINUTESmetadataCacheRefreshIntervalMsEncryptionConfig.METADATA_CACHE_REFRESH_INTERVAL_MSmonitorDisposalTimeHostMonitorServiceImpl.MONITOR_DISPOSAL_TIME_MSopenConnectionRetryIntervalMsAuroraInitialConnectionStrategyPlugin.OPEN_CONNECTION_RETRY_INTERVAL_MSopenConnectionRetryTimeoutMsAuroraInitialConnectionStrategyPlugin.OPEN_CONNECTION_RETRY_TIMEOUT_MSpasswordPropertyDefinition.PASSWORDreaderHostSelectorStrategyReadWriteSplittingPlugin.READER_HOST_SELECTOR_STRATEGYreaderInitialConnectionHostSelectorStrategyAuroraInitialConnectionStrategyPlugin.READER_HOST_SELECTOR_STRATEGYresponseMeasurementIntervalMsFastestResponseStrategyPlugin.RESPONSE_MEASUREMENT_INTERVAL_MILLISroundRobinDefaultWeightRoundRobinHostSelector.ROUND_ROBIN_DEFAULT_WEIGHTroundRobinHostWeightPairsRoundRobinHostSelector.ROUND_ROBIN_HOST_WEIGHT_PAIRSrpIdentifierFederatedAuthPlugin.RELAYING_PARTY_IDsecretsManagerEndpointAwsSecretsManagerConnectionPlugin.ENDPOINT_PROPERTYsecretsManagerExpirationTimeSecAwsSecretsManagerConnectionPlugin.SECRETS_MANAGER_EXPIRATION_SEC_PROPERTYsecretsManagerRegionAwsSecretsManagerConnectionPlugin.REGION_PROPERTYsecretsManagerSecretIdAwsSecretsManagerConnectionPlugin.SECRET_ID_PROPERTYsecretsManagerSecretPasswordPropertyAwsSecretsManagerConnectionPlugin.SECRETS_MANAGER_SECRET_PASSWORD_PROPERTYsecretsManagerSecretUsernamePropertyAwsSecretsManagerConnectionPlugin.SECRETS_MANAGER_SECRET_USERNAME_PROPERTYsingleWriterConnectionStringConnectionStringHostListProvider.SINGLE_WRITER_CONNECTION_STRINGskipInactiveWriterClusterEndpointCheckAuroraStaleDnsHelper.SKIP_INACTIVE_WRITER_CLUSTER_CHECKsocketTimeoutPropertyDefinition.SOCKET_TIMEOUTsrwConnectRetryIntervalMsSimpleReadWriteSplittingPlugin.SRW_CONNECT_RETRY_INTERVAL_MSsrwConnectRetryTimeoutMsSimpleReadWriteSplittingPlugin.SRW_CONNECT_RETRY_TIMEOUT_MSsrwReadEndpointSimpleReadWriteSplittingPlugin.SRW_READ_ENDPOINTsrwWriteEndpointSimpleReadWriteSplittingPlugin.SRW_WRITE_ENDPOINTtargetDriverAutoRegisterTargetDriverDialectManager.TARGET_DRIVER_AUTO_REGISTERtcpKeepAlivePropertyDefinition.TCP_KEEP_ALIVEtelemetryFailoverAdditionalTopTraceFailoverConnectionPlugin.TELEMETRY_FAILOVER_ADDITIONAL_TOP_TRACEtelemetryMetricsBackendPropertyDefinition.TELEMETRY_METRICS_BACKENDtelemetrySubmitToplevelPropertyDefinition.TELEMETRY_SUBMIT_TOPLEVELtelemetryTracesBackendPropertyDefinition.TELEMETRY_TRACES_BACKENDuserPropertyDefinition.USERverifyInactiveClusterWriterEndpointConnectionTypeAuroraInitialConnectionStrategyPlugin.VERIFY_INACTIVE_CLUSTER_WRITER_CONNECTION_ROLEverifyInitialConnectionTypeSimpleReadWriteSplittingPlugin.VERIFY_INITIAL_CONNECTION_TYPEverifyNewSrwConnectionsSimpleReadWriteSplittingPlugin.VERIFY_NEW_SRW_CONNECTIONSverifyOpenedConnectionTypeAuroraInitialConnectionStrategyPlugin.VERIFY_OPENED_CONNECTION_ROLEwaitForCustomEndpointInfoCustomEndpointPlugin.WAIT_FOR_CUSTOM_ENDPOINT_INFOweightedRandomHostWeightPairsWeightedRandomHostSelector.WEIGHTED_RANDOM_HOST_WEIGHT_PAIRSwrapperCaseSensitivePropertyDefinition.CASE_SENSITIVEwrapperDialectDialectManager.DIALECTwrapperDriverNameDriverMetaDataConnectionPlugin.WRAPPER_DRIVER_NAMEwrapperLogUnclosedConnectionsPropertyDefinition.LOG_UNCLOSED_CONNECTIONSwrapperLoggerLevelPropertyDefinition.LOGGER_LEVELwrapperPluginsPropertyDefinition.PLUGINSwrapperProfileNamePropertyDefinition.PROFILE_NAMEwrapperTargetDriverDialectTargetDriverDialectManager.TARGET_DRIVER_DIALECTA Secret ARN has the following format:
arn:aws:secretsmanager:<Region>:<AccountId>
SecretName-6RandomCharactersLogging
Enabling logging is a very useful mechanism for troubleshooting any issue one might potentially experience while using the AWS Advanced JDBC Wrapper.
In order to learn how to enable and configure logging, check out the Logging section.
Documentation
Technical documentation regarding the functionality of the AWS Advanced JDBC Wrapper will be maintained in this GitHub repository. Since the AWS Advanced JDBC Wrapper requires an underlying JDBC driver, please refer to the individual driver’s documentation for driver-specific information.
Using the AWS Advanced JDBC Wrapper
To find all the documentation and concrete examples on how to use the AWS Advanced JDBC Wrapper, please refer to the AWS Advanced JDBC Wrapper Documentation page.
Known Limitations
Amazon RDS Blue/Green Deployments
Support for Blue/Green deployments using the AWS Advanced JDBC Wrapper requires specific metadata tables. The following service versions provide support for Blue/Green Deployments:
rds_tools v1.7 (17.1, 16.5, 15.9, 14.14, 13.17, 12.21)and above.17.5, 16.9, 15.13, 14.18, 13.21and above.3.07and above.Please note that Aurora Global Database and RDS Multi-AZ clusters with Blue/Green deployments is currently not supported. For detailed information on supported database versions, refer to the Blue/Green Deployment Plugin Documentation.
Examples
DriverManagerMySQL
MariaDB
DataSourceDriverManagerMySQL
AWSWrapperDatasourceDriverManagerMySQL
MySQL
AWSWrapperDatasourceAWSWrapperDatasourcewith failover handlingGetting Help and Opening Issues
If you encounter a bug with the AWS Advanced JDBC Wrapper, we would like to hear about it. Please search the existing issues to see if others are also experiencing the issue before reporting the problem in a new issue. GitHub issues are intended for bug reports and feature requests.
When opening a new issue, please fill in all required fields in the issue template to help expedite the investigation process.
For all other questions, please use GitHub discussions.
How to Contribute
Note: Before making a pull request, run all tests and verify everything is passing.
Code Style
The project source code is written using the Google checkstyle, and the style is strictly enforced in our automation pipelines. Any contribution that does not respect/satisfy the style will automatically fail at build time.
Releases
The
aws-advanced-jdbc-wrapperhas a regular monthly release cadence. A new release will occur during the last week of each month. However, if there are no changes since the latest release, then a release will not occur.Aurora Engine Version Testing
This
aws-advanced-jdbc-wrapperis being tested against the following Community and Aurora database versions in our test suite:- Latest release, as shown on this page.
- Latest release, as shown on this page.
The
aws-advanced-jdbc-wrapperis compatible with MySQL 5.7 and MySQL 8.0 as per the Community MySQL Connector/J 8.0 Driver.License
This software is released under the Apache 2.0 license.