Subject | Re: [firebird-support] fbclient.dll - synchronous or asynchronous? |
---|---|
Author | Myles Wakeham |
Post date | 2004-07-09T19:55:32Z |
> On 09-Jul-2004 12:50:08, Ann W. Harrison wrote:OK, so here is kinda what I'm going to do:
> You can do simultaneous on different connections. If you planned to
> multiplex a single connection, then there would be restrictions.
Pool 1 -----------------------------------> Firebird
Pool 2 -----------------------------------> Firebird
Pool 3 -----------------------------------> Firebird
Pool 4 -----------------------------------> Firebird
Pool 5 -----------------------------------> Firebird
Pool 6 -----------------------------------> Firebird
Pool 7 -----------------------------------> Firebird
Pool 8 -----------------------------------> Firebird
I'll set up each one of these to have its own separate connection the
database, and keep each one of these 8 connections persistent, until the
user quits the application.
Let's say that a user clicks on a toolbar and opens a window that has to
contain a list of parts. Upon clicking the icon on the toolbar, it will
spawn a separate process in memory for the Part listing. This will then
query the connection pooling engine to find the next available pool. The
engine will return back an ID of the pool to use. It will then message that
pool process and pass the SQL query that is to be executed. The pool will
then wake up, prepare the query, execute it, declare a cursor for the return
values, and fetch the results into the cursor. When completed, it will then
return a message back to the Part list process that called it, saying that
the data is ready and passing the data back to that process to be displayed
in the window.
If the user has multiple windows running at the same time, then each process
spawned from the toolbar would request from the pool engine to get the next
available pool connection, and that will be the one that will handle the SQL
query.
In this scenario, multiple pools can and will be running simultaneously,
each with their own separate connection to the database, and each preparing
queries, executing them, declaring cursors, and fetching results.
From what you have told me, I am understanding that this is ok, and that if
the connections are separate for each pool, then they can fetch data
simultaneously. There isn't any synchronous processing done here.
Is that correct (and then I'll finally stop asking all these damn
questions...).
Myles
===============================
Myles Wakeham
Director of Engineering
Tech Solutions US, Inc.
(480) 451-7440
www.techsol.org