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

Reply via email to