db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lily Wei <lily...@yahoo.com>
Subject Re: AW: does Derby honor the statement.setQueryTimeout(int) ?
Date Wed, 20 Oct 2010 16:06:30 GMT
Hi Florin:
     So glad to hear derby user is using 10.6.2.1. I suspect there might be 
something more complicated than Statement.QueryTimeout was not working. Is it 
possible for you to reproduce a smaller test case to allow people to further 
investigate the case?
 
     Like Kristian pointed out, Statement.QueryTimeout should take effect. I 
attach a repro that is using Statement.QueryTimeout. I tested against 10.6.2.1 
release and it is working for me.
 
 
Best Regards,
Lily



________________________________
From: "Florin.Herinean@sungard.com" <Florin.Herinean@sungard.com>
To: derby-user@db.apache.org
Sent: Wed, October 20, 2010 8:38:11 AM
Subject: AW: does Derby honor the statement.setQueryTimeout(int) ?

Hi Kristian,

Changing of the global timeout is not an option, since I need to have most of 
the statements behave normally (to wait as long as neccessary to succeed) and 
just a few statements with a "fail fast" behavior.

The concrete problem: I have a kind of a timer that fires events at regular 
intervals (5 sec) and I have to perform some actions. It might be possible under 
certain circumstances that the performing of the actions take (much) longer than 
the fixed rate of the timer, so that the next events are fired before the long 
running one is finished. However, if the actions are involving the same sets of 
rows, I want that the overlapping ones to fail fast and roll back the 
transaction.

Now because Derby is waiting indefinitely, this scenario (events are comming via 
jms messages) will lead to the consumming of all available database connections, 
since for each jms message a new thread/transaction is created and implicitely a 
new connection.

Regards,

Florin

-----Urspr√ľngliche Nachricht-----
Von: Kristian Waagan [mailto:kristian.waagan@oracle.com] 
Gesendet: Mittwoch, 20. Oktober 2010 17:24
An: derby-user@db.apache.org
Betreff: Re: does Derby honor the statement.setQueryTimeout(int) ?


  On 20.10.10 17:16, Florin.Herinean@sungard.com wrote:
>
> Hi everybody,
>
> I'm using Derby latest 10.6.2.1 and I'm having a problem with 
> statement.setQueryTimeout(int).
>
> Namely I want to set a small value for the timeout (5 seconds) so that 
> the statement (an update statement) will fail (relatively) fast if 
> some other transaction is holding a write lock on the same row.
>
> The problem is that setQueryTimeout seems to be ignored, and the 
> update is waiting until the global timeout - 60+ seconds.
>
> Is that a known problem with Derby ? Or am I doing something wrong ?
>

Hi Florian,

I'm not sure, but if Derby is waiting for a lock, it may not honor the query 
timeout.
If the statement is doing "normal processing", the query timeout should take 
effect. If your application code is set up correctly for retrying, is it an 
option to lower the lock timeout as well?


Regards,
--
Kristian

> Best Regards,
>
> Florin Herinean
>


      
Mime
View raw message