2.1.9 - 2024-02-29

New Features

  • Support for running on Java 17 (tested with the Microsoft build of OpenJDK 17). Existing support for Java 11 is unchanged.

2.1.8 - 2023-11-13

Internal updates only

2.1.6 - 2022-10-27

  • Fixed getConnection timeout behaviour broken incidentally to the statistics updates in DBQ-174. (#372381)

  • Fixed security permission grants in PostgreSQL library jar template to match the requirements of the current driver version (42.4.0). (#380158)

2.1.3 - 2022-08-11

Note Release versions now have three components, not four.
This release requires Rhino 3.1 or later.
  • The DB Query resource adaptor now uses static OIDs for SNMP. For more information see Static OID introduction in the Rhino documentation.

  • All open source libraries used by this resource adaptor have been updated to the latest available version.

  • Stats have been added for connection failures, connection time, and time taken by late queries to datasource. (DBQ-174)

2.0.0.3 - 2021-03-19

  • Fixed an issue where trying to log a timeout exception could result in a NullPointerException if Finer tracing was disabled. (DBQ-169)

  • Fixed a race condition where, if multiple threads found the connection pool empty and the size limit (ConnPoolMaxConns) was not yet reached, all the threads would create a new connection. (DBQ-173)

2.0.0.2 - 2020-11-05

  • Updated to support ojdbc10-19.7 Oracle JDBC Driver. (DBQ-170)

  • Updated to support 8.0.21 MySQL JDBC Driver. (DBQ-170)

  • Updated to support 42.2.18 PostgreSQL JDBC Driver. (DBQ-170)

  • Fixed some SecurityExceptions caused by worker threads being created without the right AccessControlContext. (DBQ-172)

2.0.0.0 - 2020-09-01

  • This release is built on and requires JDK 11. It requires Rhino 3.0 or later.

  • As of this release, the TimesTen database driver is not being tested. See the compatibility guide for more information about using untested database drivers.

  • Fixed a NullPointerException thrown when using cached row sets (configuration property CacheNonTransactionQueryResultSets=true), on Rhino 2.4.0.11 and later. (DBQ-153)

1.4.0.5 - 2016-02-18

  • Added validations to DataSource configuration profile. WorkQueueMaxSize, WorkerThreads, AvailabilityPollInterval, and ConnPoolIdleInterval will now not allow illegal values. Several other attributes are now checked for values that may adversely affect performance and warnings printed if so. (DBQ-98)

  • Added a new counter to the DataSourceStats parameter set, "poolWaitTimeout", to record timeouts that occur when waiting on a connection from the pool (because the pool has no free connections or because a new connection is taking a long time to establish). Previously these were included in the "queueTimeout" counter. (DBQ-33)

  • Documentation improvements to better describe the interaction between the timeouts for executing queries and for waiting on results. (DBQ-38)

  • Added documentation for using MySQL. (DBQ-139)

  • Extended example service to show how to call a stored procedure. (DBQ-53)

  • Improved Ant script provided with the example services. (DBQ-129)

1.4.0.3 - 2016-02-18

  • Connections no longer get stuck in the IN_USE state when a RuntimeException occurs during task execution. For asynchronous tasks, the occurrence of a RuntimeException will be indicated by the new QueryFailureReason enum type constant RUNTIME_EXCEPTION. For synchronous API methods, the exception will be wrapped in a DatabaseQueryException thrown by the method. (DBQ-130)

1.4.0.0 - 2015-04-28

API and deployment changes

  • From release 1.4.0, the Database Query resource adaptor requires Java 7.

  • All SLEE component versions have been updated to 1.4.

  • Added a new SLEE library named 'Database Query Types', containing the Java types for the Database Query API. The library JAR is bundled within the resource adaptor type DU, and is deployed as part of the RA. This allows service developers to deploy implementations of QueryInfo in libraries. (DBQ-62)

  • All alarms related to DataSource problems now use "dataSourceProfileTableName/dataSourceProfileName" as alarmInstanceId (previously some alarms used DataSource description as alarmInstanceId). (DBQ-72)

New features

  • Introduced a guard activity to prevent the RA from becoming inactive if synchronous operations are in progress. The activity will end after all synchronous queries and transactions have ended. It will also prevent the RA from becoming inactive while there are 'lost' transactions (resulting from either synchronous or asynchronous operations). Methods on DatabaseFutureResult and DatabaseQueryProvider.createTransaction() may now throw an IllegalStateException when the resource adaptor is stopping. (DBQ-69)

Bug fixes

  • Fixed leak of timer tasks when resource adaptor fails to activate. (DBQ-73)

  • Increasing ConnPoolMinSize abruptly no longer leads to exceptions being logged. (DBQ-49)

  • Problems that occur while ending transactions will now be reported correctly. (DBQ-103)

Improvements

  • The resource adaptor implementation now uses classes in the javax.sql.rowset package, available in Java 7. Classes from the internal com.sun.rowset package were used in previous versions. (DBQ-50)

  • Query timeouts are now set on every statement, and the example deploy scripts have been updated to set the connection timeout. These two timeouts are necessary to prevent event router threads from blocking indefinitely in some network or database failure cases. (DBQ-64)

  • A description must now be provided when creating a DataSource profile. The profile will fail validation if it is missing. This fixes a null pointer exception when raising an alarm for the datasource. (DBQ-52)

  • Additional permissions have been added to the resource adaptor and Oracle driver library to allow the latest Oracle JDBC driver (12.1.0.1 at time of release) to be used. (DBQ-71)

  • Added templates and scripts for packaging MySQL and PostgreSQL JDBC drivers into library JARs. (DBQ-60)

  • Added scripts for using the example service with MySQL and PostgreSQL databases. (DBQ-67)

  • Fail the datasource if the idle check query times out. This is so we can detect failures when a network error makes the server unreachable. The timeout used is the datasource’s configured QueryTimeout.