Daniel John Debrunner wrote:
I think I just noticed an bug with the new query timeout function, I
should have seen it during the review.
The timeout is being set on the class GenericPreparedStatement, but this
represents a statement plan and can be shared across multiple
connections (through the statement cache). Thus if two connections
execute the same statement with different timeouts, they will interfere
with each other with the timeout values.
OK, I didn't know they could be used by multiple connections
simultaneously. +1 on renaming the classes..
I guess the reason my test didn't catch this (it does simultaneous
executes in order to check that the timeout effects only the right one)
is that although the queries are essentially the same, different tables
are used, thus leading to different plans/GenericPreparedStatement objects.
I'll be away until Friday; if the issue is still open when I get back
I'll look into fixing it.
--
Oyvind Bakksjo
Sun Microsystems, Database Technology Group
Haakon VII gt. 7b, N-7485 Trondheim, Norway
Tel: x43419 / +47 73842119, Fax: +47 73842101