db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Svata Dedic <ga...@volny.cz>
Subject Re: Deadlock when getting DB metadata
Date Thu, 17 Apr 2008 19:21:40 GMT
Knut Anders Hatlen wrote:
> There is one workaround you may try out: Right after you have created
> the database you can invoke DatabaseMetaData.getColumns() and any other
> meta-data calls you expect to use. Then the internal meta-data queries
> will be compiled and their execution plans stored in the database, so
> that you don't need to compile them at the point where you now see the
> deadlock. It is the (internal) compilation of the meta-data queries that
> causes the deadlock.
> 
The application attempts to read the DB schema right after it connects
to the database. Then, after DB schema change operation, it re-reads
some tables/indexes/foreign keys to keep the 'mental image' up-to-date,
using the same code (although limited to scan just some table(s) metadata).

In this situation, the DB already contained some tables when the app
started, so statements to discover exported/imported FKs, indexes,
column and table definitions were already processed and compiled at the
start, long before the operation that caused the deadlock was executed.

Is there a logger I can enable to see exact statements being compiled
internally ? I would like to verify the above, or at least discover
which type of commands are executed.

Thanks,
-Svata

Mime
View raw message