Xiaotian Bai created DBCP-597:
---------------------------------
Summary: Validation query not timing out on connections managed
by SharedPoolDataSource
Key: DBCP-597
URL: https://issues.apache.org/jira/browse/DBCP-597
Project: Commons DBCP
Issue Type: Bug
Affects Versions: 2.9.0
Reporter: Xiaotian Bai
We are running a Java application that uses
*org.apache.commons.dbcp2.datasources.SharedPoolDataSource* to maintain a JDBC
connection pool.
In a recent database failover event, we noticed database validation queries
were not timing out as expected, resulting in the application hanging and
waiting indefinitely for a response from the database.
The validation query and timeout were both explicitly set on the
SharedPoolDataSource instance.
Upon diving a bit into the source code, we suspect the issue was caused by this
code:
[https://github.com/apache/commons-dbcp/blob/master/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java#L465]
{quote} conn = pconn.getConnection();
stmt = conn.createStatement();
rset = stmt.executeQuery(validationQuery);
valid = rset.next();
{quote}
Looks like the validation query is executed with no timeout at all. However, on
[line
447|https://github.com/apache/commons-dbcp/blob/master/src/main/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java#L447]
the timeout is used when the validation query is null.
Could you confirm that this is indeed a bug, not us missing some fundamental
details? We would greatly appreciate a prompt resolution to this issue, thanks!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)