Skip to content

AWS Advanced JDBC Wrapper - v4.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Aug 22:02
· 2 commits to main since this release

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.

[4.4.0] - 2026-08-20

馃獎 Added

  • Added the autoSimpleReadWriteSplitting, gdbAutoReadWriteSplitting, gdbSimpleReadWriteSplitting, and gdbAutoSimpleReadWriteSplitting plugins, extended query-level load balancing (queryLevelLoadBalancing, loadBalancingIncludeWriter) to every read/write splitting plugin, and added statement recreation on connection switch (allowStatementRecreationOnConnectionSwitch), which re-creates a reused statement on the connection a query is routed to (PR #2016, documentation).
  • Added XA distributed transaction support through the new AwsWrapperXADataSource, which lets an application enlist wrapper connections in JTA-managed distributed transactions with PostgreSQL, MySQL, and MariaDB (PR #2045, documentation).
  • Added the assumeWriteTransaction parameter to the SQL-routing read/write splitting plugins, which routes a transaction that was not declared read-only to the writer, including its leading reads (PR #2094, documentation).
  • Added opt-in connect retry to the AWS Secrets Manager plugins (secretsManagerConnectRetryTimeoutMs, secretsManagerConnectRetryIntervalMs), which re-fetches credentials and retries with capped exponential backoff so new connections survive a secret rotation window (PR #2097, documentation).
  • Added the allowAwsLoginSession parameter, which resolves AWS credentials from an awsProfile that authenticates through a login_session entry using the region resolved for the connection (PR #2050, documentation).
  • Added the bgReleaseOnBlueDnsUpdate parameter, which releases held traffic as soon as all blue endpoints resolve to new IP addresses instead of waiting for the deployment to report a post-switchover status (PR #2101, documentation).

馃悰 Fixed

  • Fixed monitoring connections inheriting node-selection properties such as targetServerType, and stopped treating an unreadable NOT_CREATED Blue/Green status as a rollback, which together could hold traffic for the full timeout during a switchover (PR #2101, documentation).
  • Fixed statements, result sets, and metadata objects reporting a stale connection, which caused a false "The internal connection has changed" error for driver-bound JDBC objects such as a ResultSet obtained from Array#getResultSet (PR #2077, documentation).
  • Fixed a connection being pinned to a reader when autocommit is off but no transaction has started, so the first write of an implicit transaction reaches the writer (PR #2086, documentation).
  • Fixed transaction detection missing BEGIN/COMMIT hidden behind -- and # line comments, which could leave a transaction stranded on another connection (PR #2056, documentation).
  • Fixed connectTimeout, socketTimeout, and tcpKeepAlive not reaching the target driver's XADataSource, which disabled failure detection and failover on XA connections (PR #2058, documentation).
  • Fixed failover aborting with a raw runtime exception when an internal HikariCP pool failed to initialize; the failure is now reported as a SQLException and retried (PR #2051, documentation).
  • Fixed wrapperLoggerLevel being applied after the driver's first log record and being a silent no-op in AwsWrapperDataSource and AwsWrapperXADataSource (PR #2071, documentation).
  • Fixed a password= query parameter in a user-supplied connection URL leaking into FINE and FINEST log records (PR #2080, documentation).
  • Fixed negative timeout and expiration values such as loginTimeout, iamExpiration, and failoverTimeoutMs being accepted silently; they now fail fast with a clear error (PR #2081, documentation).
  • Fixed EFM v1 and EFM v2 monitoring threads silently dying on a transient exception, which leaked memory and disabled failure detection (PR #2069, documentation).
  • Fixed a NoSuchMethodError during IAM token generation when an older AWS SDK auth module is on the classpath (PR #2082, documentation).
  • Fixed IAM tokens being signed for the wrong region after a region change, such as a cross-region failover (PR #2078, documentation).
  • Fixed host selection throwing an unsupported-strategy error for custom endpoints that use the any substitution strategy (PR #2102, documentation).

馃 Changed

  • Reworked the read/write splitting plugins onto a single unified implementation. The existing readWriteSplitting, autoReadWriteSplitting, srw, and gdbReadWriteSplitting plugin codes and their behavior are unchanged (PR #2016, documentation).
  • Schema-qualified the driver's internal SQL, including the Global Database queries, so functions, operators, LIKE, and casts resolve independently of the session search_path (PR #2052, PR #2076, documentation).
  • Reading a cached XML value now works on classpaths that provide a standalone Xerces, where it previously failed. DTDs remain disallowed (PR #2095, documentation).
  • Continued the Checker Framework NullnessChecker adoption and enforced it in CI (PR #2055).
  • Dependency updates, including MySQL Connector/J 26.7.0, MariaDB Connector/J 3.5.10, Jackson Databind 3.2.2, Atomikos 6.0.1, JBoss Logging 3.6.3.Final, jsoup 1.23.1, Vert.x 4.5.32, and various GitHub Actions bumps (PR #2053, PR #2054, PR #2062, PR #2063, PR #2064, PR #2066, PR #2067, PR #2090, PR #2092, PR #2093, PR #2100).
  • CI and test improvements: sharded integration tests across parallel jobs and clusters, repaired and extended the JMH benchmarks, retried RDS/EC2 throttling in the test harness, fixed IntelliJ warnings and javadoc reference errors, and tightened Blue/Green test assertions (PR #2049, PR #2059, PR #2060, PR #2074, PR #2075, PR #2079, PR #2088, PR #2089, PR #2098).
  • Documentation:
    • documented the telemetry metrics emitted by each plugin and corrected the central metrics list (PR #2070, documentation)
    • improved the search-ability of the Aurora custom endpoint plugin and distinguished Aurora custom endpoints from user custom domains (PR #2072, documentation)
    • clarified the Jackson 3.x runtime dependency for the Secrets Manager and Okta plugins (PR #2084, documentation)
    • noted that allowAwsLoginSession is unnecessary on AWS SDK 2.51.1 and later (PR #2085, documentation)
    • improved the configuration assistant skill and fixed a Blue/Green force-connect comment (PR #2044, PR #2046, documentation).