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
|