db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: cancel a running query?
Date Fri, 10 Oct 2008 14:15:26 GMT
I have logged an enhancement request to help track this issue: 
https://issues.apache.org/jira/browse/DERBY-3908

Regards,
-Rick

Knut Anders Hatlen wrote:
> Kristian Waagan <Kristian.Waagan@Sun.COM> writes:
>
>   
>> Rick Hillegas wrote:
>>     
>>> Hi Dirk,
>>>
>>> Yes, Derby does support Statement.setQueryTimeout(), at least as
>>> verified by the Derby regression test
>>> org.apache.derbyTesting.functionTests.tests.lang.SetQueryTimeoutTest. That's
>>> a good defense if you suspect in advance that your queries may
>>> ramble on. It leaves the lingering issue of how to cancel a runaway
>>> query that you (or someone else) didn't limit before the query
>>> started.
>>>       
>> Correct.
>> It should be noted though, that your mileage may vary with
>> setQueryTimeout. I assume that mechanism requires the engine to check
>> a flag to see if it should abort, and if the code is "stuck" in an
>> area where there are no such checks you might have to wait longer than
>> the specified timeout value.
>> If anyone has been using it, it would be nice to get some feedback on
>> how well it is working/behaving.
>>
>> Is it possible to use the same machinery to add support for timing out
>> a running transaction?
>> Is this something that would be needed by many users?
>> I suppose the client (dba, user etc) would normally have an idea
>> whether the transaction/query will finish in a few seconds or a few
>> days before issuing it.
>>     
>
> There is an undocumented feature that you may use in embedded mode:
>
>   Connection conn = ....;
>   org.apache.derby.impl.jdbc.EmbedConnection embConn =
>       ((org.apache.derby.impl.jdbc.EmbedConnection) conn;
>   embConn.cancelRunningStatement();
>
> It uses the same mechanism as the statement timeout. That is, it sets a
> flag that is checked now and then during execution.
>
> Note that this method is not part of Derby's public API and could change
> or be removed any time.
>
>   


Mime
View raw message