Amazon Web Services (AWS) JDBC Driver

August 6, 2026 Β· View on GitHub

Note

πŸ“Š We want to hear from you β€” community survey is open

Help us get to know who's using the AWS Advanced JDBC Wrapper. The survey is a single GitHub Discussion with one question per comment. You answer by reacting with emojis β€” pick all that apply, multi-select is supported.

  • Takes about 3–5 minutes
  • Covers usage, deployment topology, plugins, frameworks, and your experience
  • Every reaction is visible to the community; total participants are counted from a single πŸ‘ on the participation comment

πŸ‘‰ Take the survey

Amazon Web Services (AWS) JDBC Driver

build_status License Maven Central Javadoc OpenSSF Scorecard

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 (with some caveats, see below).

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 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.

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 failover and cross-region planned failover and switchover of 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 compatibility 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.

Maven Central

<!-- 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>

Configuring the Driver with AI Tools

The driver ships with a self-contained configuration assistant skill, JDBC-WRAPPER-CONFIGURATION-ASSISTANT.md, that you can drop into your AI tool's knowledge base (Kiro, Cursor, Claude Projects, ChatGPT, Amazon Bedrock, GitHub Copilot, etc.) to help build, review, or troubleshoot wrapper configurations.

For drop-in locations, example prompts, and usage details, see Configuring the Driver with AI Tools in the Getting Started guide.

Properties

ParameterReferenceDocumentation Link
allowStatementRecreationOnConnectionSwitchUnifiedReadWriteSplittingPlugin.ALLOW_STATEMENT_RECREATION_ON_CONNECTION_SWITCHRead/Write Splitting Plugin
appIdOktaAuthPlugin.APP_IDOkta Authentication Plugin
auditLoggingEnabledEncryptionConfig.AUDIT_LOGGING_ENABLEDKMS Encryption Plugin
autoSortWrapperPluginOrderPropertyDefinition.AUTO_SORT_PLUGIN_ORDERPlugins
awsProfilePropertyDefinition.AWS_PROFILEAWS Advanced JDBC Wrapper Parameters
bgBaselineMsBlueGreenStatusProvider.BG_INTERVAL_BASELINE_MSBlue/Green Deployment Plugin
bgdIdBlueGreenConnectionPlugin.BGD_IDBlue/Green Deployment Plugin
bgConnectTimeoutMsBlueGreenConnectionPlugin.BG_CONNECT_TIMEOUTBlue/Green Deployment Plugin
bgDropBlueConnectionsBlueGreenStatusProvider.BG_DROP_BLUE_CONNECTIONSBlue/Green Deployment Plugin
bgHighMsBlueGreenStatusProvider.BG_INTERVAL_HIGH_MSBlue/Green Deployment Plugin
bgIncreasedMsBlueGreenStatusProvider.BG_INTERVAL_INCREASED_MSBlue/Green Deployment Plugin
bgSwitchoverTimeoutMsBlueGreenStatusProvider.BG_SWITCHOVER_TIMEOUT_MSBlue/Green Deployment Plugin
clusterIdRdsHostListProvider.CLUSTER_IDClusterId
clusterInstanceHostPatternRdsHostListProvider.CLUSTER_INSTANCE_HOST_PATTERNFailover Plugin
clusterTopologyHighRefreshRateMsRdsHostListProvider.CLUSTER_TOPOLOGY_HIGH_REFRESH_RATE_MSFailover Plugin v2
clusterTopologyRefreshRateMsRdsHostListProvider.CLUSTER_TOPOLOGY_REFRESH_RATE_MSFailover Plugin v2
connectTimeoutPropertyDefinition.CONNECT_TIMEOUTAWS Advanced JDBC Wrapper Parameters
connectionPoolTypePropertyDefinition.CONNECTION_POOL_TYPEAWS Advanced JDBC Wrapper Parameters
customEndpointInfoMaxRefreshRateMsCustomEndpointPlugin.CUSTOM_ENDPOINT_INFO_MAX_REFRESH_RATE_MSCustom Endpoint Plugin
customEndpointInfoRefreshRateBackoffFactorCustomEndpointPlugin.CUSTOM_ENDPOINT_INFO_REFRESH_RATE_BACKOFF_FACTORCustom Endpoint Plugin
customEndpointInfoRefreshRateMsCustomEndpointPlugin.CUSTOM_ENDPOINT_INFO_REFRESH_RATE_MSCustom Endpoint Plugin
customEndpointMonitorExpirationMsCustomEndpointPlugin.CUSTOM_ENDPOINT_MONITOR_IDLE_EXPIRATION_MSCustom Endpoint Plugin
customEndpointRegionCustomEndpointPlugin.REGION_PROPERTYCustom Endpoint Plugin
dataCacheTriggerConditionDataLocalCacheConnectionPlugin.DATA_CACHE_TRIGGER_CONDITIONUsing the AWS Advanced JDBC Wrapper
dataKeyCacheEnabledEncryptionConfig.DATA_KEY_CACHE_ENABLEDKMS Encryption Plugin
dataKeyCacheExpirationMsEncryptionConfig.DATA_KEY_CACHE_EXPIRATION_MSKMS Encryption Plugin
dataKeyCacheMaxSizeEncryptionConfig.DATA_KEY_CACHE_MAX_SIZEKMS Encryption Plugin
cacheEndpointAddrRwCacheConnection.CACHE_RW_ENDPOINT_ADDRRemote Query Cache Plugin
cacheEndpointAddrRoCacheConnection.CACHE_RO_ENDPOINT_ADDRRemote Query Cache Plugin
cacheUseSSLCacheConnection.CACHE_USE_SSLRemote Query Cache Plugin
cacheTlsCaCertPathCacheConnection.CACHE_TLS_CA_CERT_PATHRemote Query Cache Plugin
cacheUsernameCacheConnection.CACHE_USERNAMERemote Query Cache Plugin
cachePasswordCacheConnection.CACHE_PASSWORDRemote Query Cache Plugin
cacheNameCacheConnection.CACHE_NAMERemote Query Cache Plugin
cacheIamRegionCacheConnection.CACHE_IAM_REGIONRemote Query Cache Plugin
cacheMaxQuerySizeRemoteQueryCachePlugin.CACHE_MAX_QUERY_SIZERemote Query Cache Plugin
cacheConnectionTimeoutMsCacheConnection.CACHE_CONNECTION_TIMEOUTRemote Query Cache Plugin
cacheConnectionPoolSizeCacheConnection.CACHE_CONNECTION_POOL_SIZERemote Query Cache Plugin
cacheKeyPrefixCacheConnection.CACHE_KEY_PREFIXRemote Query Cache Plugin
failWhenCacheDownCacheConnection.FAIL_WHEN_CACHE_DOWNRemote Query Cache Plugin
cacheInFlightWriteSizeLimitBytesCacheMonitor.CACHE_IN_FLIGHT_WRITE_SIZE_LIMITRemote Query Cache Plugin
cacheHealthCheckInHealthyStateCacheMonitor.CACHE_HEALTH_CHECK_IN_HEALTHY_STATERemote Query Cache Plugin
cacheAllowStreamSourceRemoteQueryCachePlugin.CACHE_ALLOW_STREAM_SOURCERemote Query Cache Plugin
cacheAllowUrlRemoteQueryCachePlugin.CACHE_ALLOW_URLRemote Query Cache Plugin
databasePropertyDefinition.DATABASEAWS Advanced JDBC Wrapper Parameters
defaultHostAvailabilityStrategyHostAvailabilityStrategyFactory.DEFAULT_HOST_AVAILABILITY_STRATEGYHost Availability Strategy
enableClusterAwareFailoverFailoverConnectionPlugin.ENABLE_CLUSTER_AWARE_FAILOVERFailover Plugin
enableTelemetryPropertyDefinition.ENABLE_TELEMETRYMonitoring
endpointSubstitutionRoleAuroraInitialConnectionStrategyPlugin.ENDPOINT_SUBSTITUTION_ROLEAurora Initial Connection Strategy Plugin
enhancedLogQueryEnabledLogQueryConnectionPlugin.ENHANCED_LOG_QUERY_ENABLEDUsing the AWS Advanced JDBC Wrapper
encryptionMetadataSchemaEncryptionConfig.ENCRYPTION_METADATA_SCHEMAKMS Encryption Plugin
failoverClusterTopologyRefreshRateMsFailoverConnectionPlugin.FAILOVER_CLUSTER_TOPOLOGY_REFRESH_RATE_MSFailover Plugin
failoverModeFailoverConnectionPlugin.FAILOVER_MODEFailover Plugin
failoverReaderConnectTimeoutMsFailoverConnectionPlugin.FAILOVER_READER_CONNECT_TIMEOUT_MSFailover Plugin
failoverReaderHostSelectorStrategyFailoverConnectionPlugin.FAILOVER_READER_HOST_SELECTOR_STRATEGYFailover Plugin v2
failoverTimeoutMsFailoverConnectionPlugin.FAILOVER_TIMEOUT_MSFailover Plugin
Failover Plugin v2
failoverWriterReconnectIntervalMsFailoverConnectionPlugin.FAILOVER_WRITER_RECONNECT_INTERVAL_MSFailover Plugin
failureDetectionCountHostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNTHost Monitoring Plugin
failureDetectionEnabledHostMonitoringConnectionPlugin.FAILURE_DETECTION_ENABLEDHost Monitoring Plugin
failureDetectionIntervalHostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVALHost Monitoring Plugin
failureDetectionTimeHostMonitoringConnectionPlugin.FAILURE_DETECTION_TIMEHost Monitoring Plugin
gdbRwHomeRegionGdbReadWriteSplittingPlugin.RW_HOME_REGIONGlobal Database (GDB) Read/Write Splitting Plugin
gdbRwRestrictReaderToHomeRegionGdbReadWriteSplittingPlugin.RESTRICT_READER_TO_HOME_REGIONGlobal Database (GDB) Read/Write Splitting Plugin
gdbRwRestrictWriterToHomeRegionGdbReadWriteSplittingPlugin.RESTRICT_WRITER_TO_HOME_REGIONGlobal Database (GDB) Read/Write Splitting Plugin
gdbAccessibleRegionsPropertyDefinition.GDB_ACCESSIBLE_REGIONSGlobal Database (GDB) Failover Plugin
Global Database (GDB) Read/Write Splitting Plugin
gdbMonitoringConnectionPriorityGdbMonitoringConnectionHandler.GDB_MONITORING_CONNECTION_PRIORITYGlobal Database (GDB) Failover Plugin
globalClusterInstanceHostPatternsGlobalAuroraHostListProvider.GLOBAL_CLUSTER_INSTANCE_HOST_PATTERNSFailover Plugin v2
Global Database (GDB) Failover Plugin
hostAvailabilityStrategyInitialBackoffTimeHostAvailabilityStrategyFactory.HOST_AVAILABILITY_STRATEGY_INITIAL_BACKOFF_TIMEHost Availability Strategy
hostAvailabilityStrategyMaxRetriesHostAvailabilityStrategyFactory.HOST_AVAILABILITY_STRATEGY_MAX_RETRIESHost Availability Strategy
iamAccessTokenPropertyNameIamAuthConnectionPlugin.IAM_TOKEN_PROPERTY_NAMEAWS IAM Authentication Plugin
iamDefaultPortIamAuthConnectionPlugin.IAM_DEFAULT_PORTAWS IAM Authentication Plugin
iamExpirationIamAuthConnectionPlugin.IAM_EXPIRATIONAWS IAM Authentication Plugin
iamHostIamAuthConnectionPlugin.IAM_HOSTAWS IAM Authentication Plugin
iamIdpArnOktaAuthPlugin.IAM_IDP_ARNOkta Authentication Plugin
iamRegionIamAuthConnectionPlugin.IAM_REGIONAWS IAM Authentication Plugin
iamRoleArnFederatedAuthPlugin.IAM_ROLE_ARNFederated Authentication Plugin
iamRoleArnOktaAuthPlugin.IAM_ROLE_ARNOkta Authentication Plugin
idpEndpointFederatedAuthPlugin.IDP_ENDPOINTFederated Authentication Plugin
idpEndpointOktaAuthPlugin.IDP_ENDPOINTOkta Authentication Plugin
idpPortFederatedAuthPlugin.IDP_PORTFederated Authentication Plugin
inactiveClusterWriterEndpointSubstitutionRoleAuroraInitialConnectionStrategyPlugin.INACTIVE_CLUSTER_WRITER_SUBSTITUTION_ROLEAurora Initial Connection Strategy Plugin
initialConnectionHostSelectorStrategyAuroraInitialConnectionStrategyPlugin.HOST_SELECTOR_STRATEGYAurora Initial Connection Strategy Plugin
keyManagementMaxRetriesEncryptionConfig.KEY_MANAGEMENT_MAX_RETRIESKMS Encryption Plugin
keyManagementRetryBackoffBaseMsEncryptionConfig.KEY_MANAGEMENT_RETRY_BACKOFF_BASE_MSKMS Encryption Plugin
kms.regionEncryptionConfig.KMS_REGIONKMS Encryption Plugin
limitlessConnectMaxRetriesLimitlessConnectionPlugin.MAX_RETRIESUsing the Limitless Connection Plugin
limitlessGetTransactionRouterInfoMaxRetriesLimitlessConnectionPlugin.GET_ROUTER_MAX_RETRIESUsing the Limitless Connection Plugin
limitlessGetTransactionRouterInfoRetryIntervalMsLimitlessConnectionPlugin.GET_ROUTER_RETRY_INTERVAL_MILLISUsing the Limitless Connection Plugin
limitlessTransactionRouterMonitorDisposalTimeMsLimitlessRouterServiceImpl.MONITOR_DISPOSAL_TIME_MSUsing the Limitless Connection Plugin
limitlessTransactionRouterMonitorIntervalMsLimitlessConnectionPlugin.INTERVAL_MILLISUsing the Limitless Connection Plugin
limitlessWaitForTransactionRouterInfoLimitlessConnectionPlugin.WAIT_FOR_ROUTER_INFOUsing the Limitless Connection Plugin
loadBalancingIncludeWriterUnifiedReadWriteSplittingPlugin.LOAD_BALANCING_INCLUDE_WRITERRead/Write Splitting Plugin
loginTimeoutPropertyDefinition.LOGIN_TIMEOUTAWS Advanced JDBC Wrapper Parameters
metadataCacheEnabledEncryptionConfig.METADATA_CACHE_ENABLEDKMS Encryption Plugin
metadataCacheExpirationMinutesEncryptionConfig.METADATA_CACHE_EXPIRATION_MINUTESKMS Encryption Plugin
metadataCacheRefreshIntervalMsEncryptionConfig.METADATA_CACHE_REFRESH_INTERVAL_MSKMS Encryption Plugin
monitorDisposalTimeHostMonitorServiceImpl.MONITOR_DISPOSAL_TIME_MSHost Monitoring Plugin
monitoringConnectionPriorityAuroraMonitoringConnectionHandler.MONITORING_CONNECTION_PRIORITYGlobal Database (GDB) Failover Plugin
openConnectionRetryIntervalMsAuroraInitialConnectionStrategyPlugin.OPEN_CONNECTION_RETRY_INTERVAL_MSAurora Initial Connection Strategy Plugin
openConnectionRetryTimeoutMsAuroraInitialConnectionStrategyPlugin.OPEN_CONNECTION_RETRY_TIMEOUT_MSAurora Initial Connection Strategy Plugin
passwordPropertyDefinition.PASSWORDAWS Advanced JDBC Wrapper Parameters
queryLevelLoadBalancingUnifiedReadWriteSplittingPlugin.QUERY_LEVEL_LOAD_BALANCINGRead/Write Splitting Plugin
readerHostSelectorStrategyReadWriteSplittingPlugin.READER_HOST_SELECTOR_STRATEGYRead/Write Splitting Plugin
readerInitialConnectionHostSelectorStrategyAuroraInitialConnectionStrategyPlugin.READER_HOST_SELECTOR_STRATEGYAurora Initial Connection Strategy Plugin
responseMeasurementIntervalMsFastestResponseStrategyPlugin.RESPONSE_MEASUREMENT_INTERVAL_MILLISUsing the AWS Advanced JDBC Wrapper
roundRobinDefaultWeightRoundRobinHostSelector.ROUND_ROBIN_DEFAULT_WEIGHTHost Selection Strategies
roundRobinHostWeightPairsRoundRobinHostSelector.ROUND_ROBIN_HOST_WEIGHT_PAIRSHost Selection Strategies
rpIdentifierFederatedAuthPlugin.RELAYING_PARTY_IDFederated Authentication Plugin
secretsManagerEndpointAwsSecretsManagerConnectionPlugin.ENDPOINT_PROPERTYAWS Secrets Manager Plugin
secretsManagerExpirationTimeSecAwsSecretsManagerConnectionPlugin.SECRETS_MANAGER_EXPIRATION_SEC_PROPERTYAWS Secrets Manager Plugin
secretsManagerRegionAwsSecretsManagerConnectionPlugin.REGION_PROPERTYAWS Secrets Manager Plugin
secretsManagerSecretIdAwsSecretsManagerConnectionPlugin.SECRET_ID_PROPERTYAWS Secrets Manager Plugin
secretsManagerSecretPasswordPropertyAwsSecretsManagerConnectionPlugin.SECRETS_MANAGER_SECRET_PASSWORD_PROPERTYAWS Secrets Manager Plugin
secretsManagerSecretUsernamePropertyAwsSecretsManagerConnectionPlugin.SECRETS_MANAGER_SECRET_USERNAME_PROPERTYAWS Secrets Manager Plugin
singleWriterConnectionStringConnectionStringHostListProvider.SINGLE_WRITER_CONNECTION_STRING
skipInactiveWriterClusterEndpointCheckAuroraStaleDnsHelper.SKIP_INACTIVE_WRITER_CLUSTER_CHECKGlobal Database (GDB) Failover Plugin
socketTimeoutPropertyDefinition.SOCKET_TIMEOUTAWS Advanced JDBC Wrapper Parameters
srwConnectRetryIntervalMsSimpleReadWriteSplittingPlugin.SRW_CONNECT_RETRY_INTERVAL_MSSimple Read/Write Splitting Plugin
srwConnectRetryTimeoutMsSimpleReadWriteSplittingPlugin.SRW_CONNECT_RETRY_TIMEOUT_MSSimple Read/Write Splitting Plugin
srwReadEndpointSimpleReadWriteSplittingPlugin.SRW_READ_ENDPOINTSimple Read/Write Splitting Plugin
srwWriteEndpointSimpleReadWriteSplittingPlugin.SRW_WRITE_ENDPOINTSimple Read/Write Splitting Plugin
targetDriverAutoRegisterTargetDriverDialectManager.TARGET_DRIVER_AUTO_REGISTERAWS Advanced JDBC Wrapper Parameters
tcpKeepAlivePropertyDefinition.TCP_KEEP_ALIVEAWS Advanced JDBC Wrapper Parameters
telemetryFailoverAdditionalTopTraceFailoverConnectionPlugin.TELEMETRY_FAILOVER_ADDITIONAL_TOP_TRACEFailover Plugin
telemetryMetricsBackendPropertyDefinition.TELEMETRY_METRICS_BACKENDMonitoring
telemetrySubmitToplevelPropertyDefinition.TELEMETRY_SUBMIT_TOPLEVELMonitoring
telemetryTracesBackendPropertyDefinition.TELEMETRY_TRACES_BACKENDMonitoring
userPropertyDefinition.USERAWS Advanced JDBC Wrapper Parameters
verifyInactiveClusterWriterEndpointConnectionTypeAuroraInitialConnectionStrategyPlugin.VERIFY_INACTIVE_CLUSTER_WRITER_CONNECTION_ROLEAurora Initial Connection Strategy Plugin
verifyInitialConnectionTypeSimpleReadWriteSplittingPlugin.VERIFY_INITIAL_CONNECTION_TYPESimple Read/Write Splitting Plugin
verifyNewSrwConnectionsSimpleReadWriteSplittingPlugin.VERIFY_NEW_SRW_CONNECTIONSSimple Read/Write Splitting Plugin
verifyOpenedConnectionTypeAuroraInitialConnectionStrategyPlugin.VERIFY_OPENED_CONNECTION_ROLEAurora Initial Connection Strategy Plugin
waitForCustomEndpointInfoCustomEndpointPlugin.WAIT_FOR_CUSTOM_ENDPOINT_INFOCustom Endpoint Plugin
waitForCustomEndpointInfoTimeoutMsCustomEndpointPlugin.WAIT_FOR_CUSTOM_ENDPOINT_INFO_TIMEOUT_MSCustom Endpoint Plugin
weightedRandomHostWeightPairsWeightedRandomHostSelector.WEIGHTED_RANDOM_HOST_WEIGHT_PAIRSHost Availability Strategy
wrapperCaseSensitivePropertyDefinition.CASE_SENSITIVEAWS Advanced JDBC Wrapper Parameters
wrapperDialectDialectManager.DIALECTDialects
wrapperDriverNameDriverMetaDataConnectionPlugin.WRAPPER_DRIVER_NAMEDriverMetaDataConnectionPlugin
wrapperLogUnclosedConnectionsPropertyDefinition.LOG_UNCLOSED_CONNECTIONSAWS Advanced JDBC Wrapper Parameters
wrapperLoggerLevelPropertyDefinition.LOGGER_LEVELLogging
wrapperPluginsPropertyDefinition.PLUGINSAWS Advanced JDBC Wrapper Parameters
wrapperProfileNamePropertyDefinition.PROFILE_NAMEConfiguration Profiles
wrapperTargetDriverDialectTargetDriverDialectManager.TARGET_DRIVER_DIALECTAWS Advanced JDBC Wrapper Parameters

A Secret ARN has the following format: arn:aws:secretsmanager:<Region>:<AccountId>:secret: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

MariaDB

The MariaDB driver uses pipelining, which is not compatible with Aurora. If you use the MariaDB driver against Aurora, you should disable the following properties, because they rely on pipelining.

Properties props = new Properties();
props.setProperty("usePipelineAuth", "false");
props.setProperty("useBatchMultiSend", "false");

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 RDS PostgreSQL Versions: rds_tools v1.7 (17.1, 16.5, 15.9, 14.14, 13.17, 12.21) and above.
  • Supported Aurora PostgreSQL Versions: Engine Release 17.5, 16.9, 15.13, 14.18, 13.21 and above.
  • 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

DescriptionExamples
Using the AWS Advanced JDBC Wrapper to get a simple connectionPostgreSQL
Using the AWS Advanced JDBC Wrapper with failover handlingPostgreSQL
Using the AWS IAM Authentication Plugin with DriverManagerPostgreSQL
MySQL
MariaDB
Using the AWS IAM Authentication Plugin with DataSourcePostgreSQL and MySQL
Using the AWS Secrets Manager Plugin with DriverManagerPostgreSQL
MySQL
Using the AWS Credentials Manager to configure an alternative AWS credentials provider.PostgreSQL and MySQL
Using the AWS Advanced JDBC Wrapper with AWSWrapperDatasourcePostgreSQL
Using the Driver Metadata Plugin to override driver name, this plugin enables specific database features that may only be available to target driversPostgreSQL
Using the Read/Write Splitting Plugin with DriverManagerPostgreSQL
MySQL
Using the Read/Write Splitting Plugin with SpringPostgreSQL
MySQL
Using HikariCP with the AWSWrapperDatasourcePostgreSQL
Using HikariCP with the AWSWrapperDatasource with failover handlingPostgreSQL
Using Spring and HikariCP with the AWS Advanced JDBC WrapperPostgreSQL
Using Spring and HikariCP with the AWS Advanced JDBC Wrapper and failover handlingPostgreSQL
Using Spring and Hibernate with the AWS Advanced JDBC WrapperPostgreSQL
Using Spring and Wildfly with the AWS Advanced JDBC WrapperPostgreSQL
Using Vert.x and c3p0 with the AWS Advanced JDBC WrapperPostgreSQL
Using the AWS Advanced JDBC Wrapper with Telemetry and using the AWS Distro for OpenTelemetry CollectorPostgreSQL
Using the AWS Advanced JDBC Wrapper with Telemetry and using the AWS X-Ray DaemonPostgreSQL
Configuring the AWS Advanced JDBC Wrapper with an AI tool (Cursor, Claude, ChatGPT, Bedrock, etc.) using the Configuration Assistant skillJDBC Wrapper Configuration Assistant

Other AWS Advanced Wrapper Drivers

The AWS Advanced JDBC Wrapper is part of a broader family of AWS "wrapper" drivers that bring the same advanced functionality, such as failover support and IAM authentication, to other languages and database connectivity standards. If you are working outside of Java, you may find one of the following drivers useful:

DriverRepository
AWS Advanced Python Wrapperhttps://github.com/aws/aws-advanced-python-wrapper
AWS Advanced NodeJS Wrapperhttps://github.com/aws/aws-advanced-nodejs-wrapper
AWS Advanced Go Wrapperhttps://github.com/aws/aws-advanced-go-wrapper
AWS Advanced .NET Wrapperhttps://github.com/aws/aws-advanced-dotnet-data-provider-wrapper
AWS Advanced ODBC Wrapperhttps://github.com/aws/aws-advanced-odbc-wrapper

Getting 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

  1. Set up your environment by following the directions in the Development Guide.
  2. To contribute, first make a fork of this project.
  3. 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).
  4. Create a pull request from your fork.
  5. 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:

DatabaseVersions
MySQL8.0.36
PostgreSQL16.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.

- Latest release, as shown on this page.
Aurora PostgreSQL- Default version. To check the default version, open the RDS "Create database" page in the AWS console and check the pre-selected database version.

- Latest release, as shown on this page.

The aws-advanced-jdbc-wrapper is 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.