You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2010/02/15 05:15:27 UTC

[jira] Closed: (DBCP-163) [dbcp] Use setQueryTimeout in combination with validationQuery to recover from network problems

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

Phil Steitz closed DBCP-163.
----------------------------


> [dbcp] Use setQueryTimeout in combination with validationQuery to recover from network problems
> -----------------------------------------------------------------------------------------------
>
>                 Key: DBCP-163
>                 URL: https://issues.apache.org/jira/browse/DBCP-163
>             Project: Commons Dbcp
>          Issue Type: Improvement
>    Affects Versions: 1.1
>         Environment: Operating System: Linux
> Platform: Other
>            Reporter: cryptic
>            Priority: Minor
>             Fix For: 1.3
>
>
> When the network connection between tomcat 4.1.29 and database (experienced with
> sybase ASE 12.5) is lost, the 'Connection' hangs indefinitely. 
> It hangs in the line of code "con = DatasourceObject.getConnection();"
> None of the other options in the connection pooling stuff - add info: used
> SharedPoolDatasourceFactory in dbcp - like maxWait / validationQuery
> /removeAbandoned/ removeAbandonedTimeout etc doesnt timeout the connection.
> Analysis: When the network connection to the database is fine (normal scenario)-
> the dbcp gets a connection from the datasource (connection pool)- sets three
> params - autocommit, readonly and isolation level for the connection object and
> returns this improved connection object to the calling class.  
> Now say the network connection is lost, and the unaware application requests for
> a connection from the pool, gets the connection object and then tries to set the
> first of three params (autocommit- mentioned above) where it hangs.
> None of the timeout params work in this scenario. Setting a validationQuery
> tries its validation only after getting the connection object which never happens. 
> Soln(possibility): after getting the raw connection object - run a validation
> query (or any call to database)with a stmt.setQueryTimeout() set to say 3-5 secs
> - or say configurable by user - and then catch the exception (noroutetohost
> exception) to throw it back.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.