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)