On Thu, 26 Aug 2004 09:04:07 +0100, Tim Bunce <[EMAIL PROTECTED]> wrote:
> We would all like many things but have to settle for what's practical.
> 
> The APIs of all the main databases which offer a non-blocking mode
> (which includes at least ODBC and Oracle OCI) need to be studied first
> to ensure that any DBI API design is workable for them.
> 
> We might as well start that now...
> 
> Can driver authors, and anyone else interested, please reply with a
> short summary of the way non-blocking mode works for 'your' database.
> Including URLs to relevant docs would be a *big* help.

The DBD::Informix interface, Informix ESQL/C, does not support a
non-blocking mode.

Whether the Informix ODBC drivers support a non-blocking mode is
debatable - I've not checked, and have no particular plans to do so. 
Manuals are available if you're curious:

http://www.ibm.com/software/data/informix/library

One of the issues I think that the specification will have to address,
probably restrictively, is whether you can have both an asynchronous
(non-blocking) statement and other synchronous (or, indeed, other
asynchronous) statements active on a single $dbh -- I suspect that the
portable answer will be "No; only one statement, whether synchronous
or asynchronous, can be active on a $dbh at any given time".

Also, I think we should review whether Perl threading might be an
alternative (better?) way to achieve asynchronous operations. 
DBD::Informix and ESQL/C could support multi-threading with some work
-- basically, to ensure that any 'globals' are allocated per thread
when necessary.  You'd then be able to have multiple $dbh -
connections - to  a database, and different threads would be able to
use different $dbh synchronously (within the thread) but concurrently
(across threads).

-- 
Jonathan Leffler <[EMAIL PROTECTED]>  #include <disclaimer.h>
Guardian of DBD::Informix - v2003.04 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

Reply via email to