You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2006/07/10 07:06:31 UTC

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

     [ http://issues.apache.org/jira/browse/DBCP-163?page=all ]

Phil Steitz updated DBCP-163:
-----------------------------

    Bugzilla Id:   (was: 30391)
    Fix Version: 1.3

> [dbcp] Use setQueryTimeout in combination with validationQuery to recover from network problems
> -----------------------------------------------------------------------------------------------
>
>          Key: DBCP-163
>          URL: http://issues.apache.org/jira/browse/DBCP-163
>      Project: Commons Dbcp
>         Type: Improvement

>     Versions: 1.1 Final
>  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.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org