[freetds] Attempt to initiate a new Adaptive Server operation with results pending", client returns 2 (INT_CANCEL)
James K. Lowden
jklowden at freetds.org
Mon Sep 13 22:05:07 EDT 2010
Robert Dunkley wrote:
> dblib.c:6851:UNIMPLEMENTED dbpoll()
That's potentially one problem. In CVS HEAD db-lib excludes unimplemented
functions at compile time unless DBLIB_UNIMPLEMENTED is defined. But
dbpoll() somehow slipped in.
In prior versions of FreeTDS (including 0.82) unimplemented functions
didn't work (obviously) but returned SUCCEED regardless. I suppose at one
time that was useful, but nowadays it's deceptive at best.
In your case, it seems at least possible dbpoll() is usually returning
right in spite of itself: results *are* ready even if it didn't check.
But if the application had hoped to do something else while waiting for
the server, it can't. When it attempts to read the results with
dbresults(), it will block.
As for "Attempt to initiate a new Adaptive Server operation with results
pending", that's a logical error on the part of the application: you have
to read your results or cancel them before issuing a new query. Cf. FAQ
More information about the FreeTDS