Our development team uses Squirrel SQL to work mostly with Oracle databases.  Recently, however, we've been running into problems.  After spending a lot of time trying to understand and reproduce the problems, we've narrowed the symptoms. 

SchemaInfo's loadColumns method gets triggered from a few places.  Of interest, however, is the code completion plugin.  The plugin seems to trigger the loadColumns on key strokes.  That is all and well.  But, loadColumns uses a class instance variable reference to DatabaseMetaData to grab column information about the table being worked on. 

Now, with Oracle's JDBC drivers, having DatabaseMetaData accessed from multiple threads is inherently problematic.  It causes some problems that, under the right load, take the entire database down.  As disappointing as all that is, the question is whether SchemaInfo is right in making the assumption that JDBC drivers will provide a thread-safe DatabaseMetaData object.

Thoughts, suggestions?

Thank you,
Amit Gollapudi
Express Scripts, Inc.

******* Confidentiality Notice *******
This email, its electronic document attachments, and the contents of its website linkages may contain confidential health information. This information is intended solely for use by the individual or entity to whom it is addressed. If you have received this information in error, please notify the sender immediately and arrange for the prompt destruction of the material and any accompanying attachments.