Subject RE: [ib-support] Help with Multi-threaded application on Localhost
Author Dan Cumpian
Helen,

The "request live" is in a select query. The select query is used to
open the record where the blob needs to go. I am using a TBlobstream to
update the blob itself.

As far as environment goes, I'm not certain how to answer this. I am
using the Zeos Database Object and Delphi to connect to the Firebird
database. Each thread has its own, independent database connection. I'm
not sure what you mean regarding your last question... Basically, the
application is a Newsreader that has the following threads:

1) GUI thread
2) Download thread #1
3) Download thread #2
4) Purge thread
5) Cleanup thread

The last two threads are not usually active when the error occurs. The
GUI thread displays the download queue in a DBGrid as well as handling
other database related duties required by the user (displaying headers,
etc...). The download threads do the actual work.

In your opinion, are these separate database connections independent
enough to provide the isolation required? Is so, then I will continue
to try and track this error down.

FYI, I am using these same components to connect to a MySQL database in
this same application and I don't get this error there (though there are
other issues with MySQL).

How can I force each thread to wait, when necessary, for a table to be
available when it is being updated in another thread?

Thanks,
Dan Cumpian



-----Original Message-----
From: Helen Borrie [mailto:helebor@...]
Sent: Monday, February 24, 2003 9:32 PM
To: ib-support@yahoogroups.com
Subject: RE: [ib-support] Help with Multi-threaded application on
Localhost

At 09:19 PM 24/02/2003 -0500, you wrote:
>Helen,
>
>Wow, that was fast... :)
>
>Anyway, the issue I am having is that, on occasion when several threads
>are writing to the database at once, I will get a message that says:
>
>"Connection to server not defined..." and then something about a "no
>wait" transaction. I don't have the error message available, so I am
>paraphrasing. It's very hard to duplicate this error and it's driving
me
>nuts.
>
>As far as I can tell, it appears that one of the threads is not able to
>either read or write to the database while one of the other threads are
>writing, but I am having a devil of a time isolating the thread(s) that
>are involved. I am running all of the threads using "Read Committed",
>however, there are two threads that have a query that opens with a
>"Request Live" setting to insert a blob. I believe that this is
probably
>where the problem is, but I am not sure.
>
>If you need more information, I'll try to capture the error and repost.

The info so far doesn't tell me what's going on but it does seem you
have
two different errors here. More questions...
What's the client environment? Is it capable of totally isolating each
connection from all of the others?
What does your environment expect to do with a "Request Live" when
performing DML? Request Live seems to be an attribute that would be
applied to a SELECT statement, not an INSERT...
If you are using Read Committed transaction isolation in all of the
threads, how are you covering possible dependencies that would require
updates (as distinct from inserts) to be handled serially? This is a
bit
of a wasp's nest and it might not be an issue...can't tell from the info

provided.

heLen




To unsubscribe from this group, send an email to:
ib-support-unsubscribe@egroups.com



Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/