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 Tue, 21 Mar 2006 21:51:20 GMT
     [ http://issues.apache.org/jira/browse/DERBY-1090?page=all ]

Olav Sandstaa updated DERBY-1090:
---------------------------------

    Attachment: embedded1090-query.diff

The patch contains one alternative implementation of  Connection.isValid() for the embedded
driver by verifying that the connection
is open (by calling isClosed()) and by running a simple query ("VALUES (1)") against the database.
If the connection is closed or if the query returns any SQL exception, isValid returns false.
To support the timeout defined as a parameter to isValid, setQueryTimeout is used.

Testing:

The patch extends the TestConnectionMethods.java test with test for isValid in the following
cases:

  -wrong parameter values (negative timeout)
  -isValid with no timeout
  -isValid with a specified timeout
  -isValid on a connection that is closed
  -isValid on a "open connection" to a database that is shutdown

I plan to submit an alternative patch that is checking only for isClosed as well as a more
complete patch containing an implementation of isValid for the Derby client driver.

svn status reports:

M      java/engine/org/apache/derby/impl/jdbc/EmbedConnection40.java
M      java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestConnection.java
M      java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/TestConnectionMethods.java

I have run the JDBC4 tests using Java 1.6 and derbyall using 1.5 under Solaris 10 x86. Only
errors seen in the regression test was reported.

The patch is complete for the embedded driver and could be reviewed and committed, but I expect
that we should wait until we have decided if using only isClosed is a better and sufficient
solution.



> 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: 10.2.0.0
>  Attachments: 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
operation. 
> 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:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message