-
Bug
-
Resolution: Done
-
Major
-
jboss-fuse-6.3
-
None
-
%
-
-
Configured `aries.xa.validateOnMatch` as described in [#https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html/transaction_guide/xajdbc-autoenlist.]
However, this does not have any effects. When requesting a connection, Aries does never call org.apache.aries.transaction.jdbc.internal.ValidatingDelegatingManagedConnectionFactory#isValidConnection.
Here's what customer's business objective of setting this property:
- Currently we get stale connections returned from the pool (i. e. Connections with `javax.sql:Connection#isValid() == false`). Business processes using those connections may be aborted (and maybe retried) when getting such connections. We have processes which get multiple times stale connections from the pool and which may give up due to retry limits. We have also periodic jobs running just once a day after the night getting back stale connections and failing because of that. We need to check if there are any stale connections.
Objective of setting the property:
GIVEN I have configured `aries.xa.validateOnMatch` (and not `aries.xa.backgroundValidation`) on a Datasource
WHEN `javax.sql.DataSource#getConnection` is called AND a pooled connection is available
THEN `javax.sql.Connection#isValid` on that connection will be called (probably via ValidatingDelegatingManagedConnectionFactory#isValidConnection) AND if that function returns `false` (i. e. the connection is invalid) the connection will be removed from the pool and a fresh connection will be allocated and returned.
- is related to
-
ARIES-1790 Loading...