db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Olav Sandstaa (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-1090) Implement Connection.isValid as defined by JDBC4
Date Fri, 21 Apr 2006 13:38:20 GMT
     [ http://issues.apache.org/jira/browse/DERBY-1090?page=all ]

Olav Sandstaa updated DERBY-1090:

    Attachment: client1090_patch1.diff

This patch (client1090_patch1.diff) implements the Connection.isValid for the network client.
The connection is valid if (a) it is not closed (checked isClosed()) and (b) a simple query
("VALUES (1)") is executed successfully. Any exception thrown by the query execution is treated
as if the connection is not valid.

If a timeout is specified this is handled by setting a query timeout for executing the query
(queryTimeout() is used). 

The implementation handles most failure situations, with the exception of a hanging server
that is not returning any reply to the client. I plan to submit a fix for this in a separte

The isValid() call is tested for the following scenarios:

  -illegal parameter values (negative timeout)
  -no timeout value
  -with a timeout specified
  -on a connection to a database that has been shutdown
  -on a connection to a network server that has been stopped

svn status reports:

M      java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestConnectionMethods.java
M      java/client/org/apache/derby/client/net/NetConnection40.java

I have run the JDBC4 tests and derbyall with the patch. Only failure was in tools/derbyrunjartest.java.

The patch can be reviewed and committed.

> Implement Connection.isValid as defined by JDBC4
> ------------------------------------------------
>          Key: DERBY-1090
>          URL: http://issues.apache.org/jira/browse/DERBY-1090
>      Project: Derby
>         Type: Sub-task

>   Components: JDBC
>     Reporter: Olav Sandstaa
>     Assignee: Olav Sandstaa
>     Priority: Minor
>      Fix For:
>  Attachments: client1090_patch1.diff, embedded1090-isclosed.diff, embedded1090-query.diff
> The Javadoc for JDBC4 says this about Connection.isValid:
> boolean isValid(int timeout) throws SQLException
> Returns true if the connection has not been closed and is still valid. The driver shall
submit a query on the connection or use some other mechanism that positively verifies the
connection is still valid when this method is called. 
> The query submitted by the driver to validate the connection shall be executed in the
context of the current transaction. 
> Parameters: timeout - - The time in seconds to wait for the database operation used to
validate the connection to complete. If the timeout period expires before the operation completes,
this method returns false. A value of 0 indicates a timeout is not applied to the database
> Returns: true if the connection is valid, false otherwise 

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message