I will look at reproducing, but I'm moving towards a workaround where I don't shut down so much.

I am pretty sure all you need to do is repeatedly kill a process repeatedly boots, updates, and shuts down a database.  At some point you'll kill the process in the middle of shutdown and I bet you'll end up with a corrupted database.

Thanks for the tips on how to reduce the number of open files.  But I suspect this has a negative impact on performance.  But I can test it out and see if it's acceptable.


On Tue, Jun 15, 2010 at 11:37 AM, Knut Anders Hatlen <Knut.Hatlen@sun.com> wrote:
On 06/15/10 12:42 AM, David Van Couvering wrote:
> So, I have a couple of questions for you all:
> - Do the number of files held open by a database grow as the number of
> rows in a table grows?  Some of these tables will have millions of
> records.

No, the size of the table shouldn't affect the number of files.

> - Is there any way to tell Derby to close out open files and/or reduce
> the number of open files to a minimum?

There's an undocumented property, derby.storage.fileCacheSize, that
allows you to tune the size of the container cache (which contains file
handles for files in the seg0 directory). Its default size is 100.
Minimum is 2.

> - Is it a known issue that shutting down a database will corrupt the
> database if another thread is updating it?

Not as far as I know, but if you have a reproduction for this, please
file a bug report. Shutdown was one of the suspects in the still
unresolved data corruption issue DERBY-3607, but unfortunately no one
except the reporter has managed to reproduce it.

Knut Anders

David W. Van Couvering