Right... Cancel() is going to be the tricky one to implement.
Satheesh
Daniel John Debrunner wrote:
Satheesh Bandaram wrote:
But I think Derby's client JDBC driver, currently the IBM Universal
driver, has some support. (I haven't tested it..) IBM recently announced
contributing a Derby Client to Apache. If this client code is accepted
and has the implementation for setQueryTimeOut() and cancel(), it might
be easy to adapt that code to Embed driver as well.
Cancel() is a requirement for setQueryTimeout(), as I think once the
timeout has expired, setQueryTimeout() would just call cancel() or its
underlying logic. Thus if you want to implement these features, you need
to start with cancel.
I don't think the cancel in a network client will help in any way in
implementing cancel() in embedded. The cancel in embedded needs to know
about how queries or statements are executed. A starting point for
investigation would be to see how the engine handles Thread.interrupt().
Currently if a thread is interrupted the session/connection is closed, a
similar mechanism would be needed for cancel. And it might make sense to
change it so that if the thread is interrupted only the active statement
is cancelled, I know the connection closing surprised some Cloudscape
customers.
Dan.
|