Daniel Noll wrote:
Hi all.
I have a question about the case where an embedded Derby database is
being stored on NFS or CIFS or whatever.
Basically what I'm seeing happen is, a network outage occurs at some
point in time. This causes a fairly normal store error as you would
expect, but then Derby "remembers" that the database is corrupt and
refuses any further operations, even if the network comes back up.
We can attempt to get around this when operating in pure embedded mode
by doing a full shutdown and re-open, and this does work.
But if we're in server mode and the connection from Derby to the
storage goes down, i.e.:
Derby Client ------> Derby Server ---X--> Database on NAS
Is there some way to handle this situation gracefully? It appears
that network server doesn't attempt a shutdown / connect when this
occurs, it simply keeps the store open and in unusable state.
Or is a better solution to make the store layer more aware that these
problems can be temporary?
Daniel
The problem is that I/O across a network cannot to be guaranteed. You
are actually losing data buffered along the network when the network
fails. Derby detects this when is boots the next time and finds the
checksums and timestamps on the files int the database are out of sync.
Derby database files must reside local to the machine hosting the Derby
DBMS engine.