On 06.07.10 08:23, David Van Couvering wrote:
Hi, all. I seem to have a repeatable issue where my database is
getting corrupted, and I can only assume it's happening when the table
is getting created, because I know Derby is great on handling crashes
during normal operation.
First of all - is it true that a Derby database can get corrupted if
the VM goes down in the middle of a DML like CREATE TABLE?
What I'm seeing is that upon restart, when I try to access the
database, I get the error "unable to create database FOO: the
directory already exists." The directory contains what appears to be
a Derby database, but apparently not enough of one.
Hi David,
It would be great if you can create a Jira and attach the contents of
the database directory (or maybe just the output from find). Including a
runnable repro would be even better :)
Also:
o Can the issue be reproduced using ij only?
o Is this reproducible when only a single process is
accessing/modifying the database?
I believe there has been a few reports of the error message you
mentioned, but so far no repro has been available.
Having a forceCreate option requires some thought, it would be
unfortunate if Derby deleted (i.e. misuse or exploit) a bunch of
user/system files. This wouldn't be such a big deal if everyone
tightened the Java security policy for Derby, but I'm not sure that's
the case...
Regards,
--
Kristian
What I'm hoping for, is there a "forceCreate=true" kind of option when
opening a database that forces the creation of the database in the
given directory even if something is already there?
Otherwise it appears my only option is to detect this specific error
('directory already exists'), and then blow away what's there and try
again. That's a chunk of work I'd rather not do, so I'm hoping you've
already addressed it (ahem :)).
Thanks,
David
--
David W. Van Couvering
http://www.linkedin.com/in/davidvc
http://davidvancouvering.blogspot.com
http://twitter.com/dcouvering