You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2024/12/15 14:47:00 UTC

[jira] [Resolved] (DBCP-597) Validation query not timing out on connections managed by SharedPoolDataSource

     [ https://issues.apache.org/jira/browse/DBCP-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary D. Gregory resolved DBCP-597.
----------------------------------
    Fix Version/s: 2.13.1
       Resolution: Fixed

[~xiaotianbai]
[~rajugupta]
This is fixed in git master for 2.13.1-SNAPSHOT, please verify.
This fix is also available in snapshot builds here: https://repository.apache.org/content/repositories/snapshots/
 

>  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
>            Assignee: Gary D. Gregory
>            Priority: Major
>             Fix For: 2.13.1
>
>
> 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.
> {quote}ds = new SharedPoolDataSource();
> ds.setValidationQuery("SELECT 1")
> ds.setValidationQueryTimeout(5).
> {quote}
>  
> 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}
>  
> We noticed the _stmt_ statement object does not call setQueryTimeout() and the validation query seems to be executed with no timeout at all. 
> 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)