-
Bug
-
Resolution: Done
-
Major
-
3.2.11.Final
-
None
In WildFly 21.0.0, created a simple DB2 (non-XA) datasource with no explicit configuration of validation. The below was automatically added (and the same is seen when creating an XA datasource also):
<validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker"/> <background-validation>true</background-validation> <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2StaleConnectionChecker"/> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter"/> </validation>
The above is problematic
- Background validation is not recommended in most cases as it is less reliable than validate-on-match (since it runs periodically rather than at the point/time connections are requested from the pool). A better default would be <validate-on-match>true</validate-on-match> with background-validation disabled. Background validation should typically be used only if explicit testing verifies that validate-on-match noticeably impacts performance for end-users.
- Using background-validation without background-validation-millis > 0 will not enable background validation.
- Stale connection checkers are rarely needed (only relevant if applications are explicitly coded to handle StaleConnectionException) so it doesn't really make sense to configure one by default.