Skip to Content.
Sympa Menu

freetds - Re: [freetds] 0.65 (or whatever) TODO

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] 0.65 (or whatever) TODO
  • Date: Fri, 20 Apr 2007 11:21:21 +0200

>
> ZIGLIO, Frediano, VF-IT wrote:
> > > 3- does odbc handle timeouts correctly? does it stop connection if
> > > cancel is not accepted?
>
> AFAICT, no, it does not. :-(
>

Yes, you are right... test added (timeout4)

> > I have still to make a test... should be somthing like
> > - timeout
> > - send cancel
> > - still timeout
> > - close connection...
>
> That's what I think should happen, too. If you set you
> query_timeout to
> X, you wait X for the query to complete, send a cancel, wait (up to) X
> again for a confirmation. If none is received, close the
> connection.
>
> That is, tdserror() will call the ODBC error handler (provided by the
> library; the client cannot install his own). On timeout 1,
> the handler
> returns TDS_INT_TIMOUT. On timeout 2, the handler returns
> TDS_INT_CANCEL.
> The trick is to distinguish 1 from 2. ;-)
>

Just check in_cancel !!

However... I fixed this case and even a small problem with SQLPrepare
(it didn't set timeout on connection leading to infinite timeout)

> BTW, I found this in the log, too, when running bsqlodbc:
>
> util.c:110:logic error: cannot change query state from IDLE to PENDING
>

Mmm... quite bad. The error is correct but probably the code isn't... It
something like expecting a reply without making a question! It can
happen however in cancellation... things are quite strange!

freddy77





Archive powered by MHonArc 2.6.24.

Top of Page