Subject Re: [ib-support] object in use error
Author Ann W. Harrison
At 05:35 PM 12/20/2001 +0000, the_k_dubb wrote:
>Our application uses the C API, with multiple threads. We use one
>connection per thread, and this is working fine. The problem arises
>when we need to add a table to the database, or drop one; certain
>functions fail, (randomly near as I can tell). I usually get "XXX
>object in use", but sometimes it is "unsuccessfull metadata update".
>All threads but the one are totally idle, just still connected. Is
>there any way to get around this, w/o making all but one thread
>disconnect? (the logic for this will be very complicated for us). Any
>ideas at all are welcomed....please help!!!

Have you tried having your idle threads release all their prepared
queries? The two errors you're seeing are really the same - object
in use is a secondary error that clarifies the more general
"unsuccessful metadata update". The error arises when some connection
has an "interest" lock on the object in question. "Interest" locks
don't interfere with reading or writing instance of the object, but
prevent deletion or modification of the object itself. A prepared
request gets "interest" locks on the tables and indexes it uses.


We have answers.