Valentin Cozma wrote:
Stanley Bradbury wrote:
Not being a hardware or network guy I can't speak in detail to all the TLAs you are using but do know the following is documented: Derby database files must reside local to the machine hosting the Derby DBMS engine. So that leaves out anything over TCP/IP and I know that NFS mounts, Windows file shares and Samba mounts. These systems will result in corruptions because there is not way to insure that a physical write to disk was completed.

from what I know the problem is that nfs blocks and doesn't raise an exception until SO tcp timeout is reached ( linux default 2 hours )

don't know about samba

With CIFS/SMB you issue SMB_COM_FLUSH to flush, and it's documented as flushing to disk -- Samba can honor this (but the setting defaults to off). Also, what you describe is NFS2 -- NFS3 can work asynchronously if you want, but it can still operate in NFS2 mode as well.

So really, CIFS and NFS both appear to be okay for syncing -- NFS is trickier to get working properly for locking, but that's another issue.

In any case, in my case the database has not been corrupted -- the network went down, came back up, and Derby *thought* the database was corrupted, but on forcing a shutdown and opening it again it worked.

So my original question stands but I'll rephrase it -- in this situation, is there some way Derby can do this reconnection itself at the store level, or is there some way it can do it at the Network Server level, or do we have to shut down the entire Network Server and all its embedded databases to do it at our own level?

Daniel


--
Daniel Noll                            Forensic and eDiscovery Software
Senior Developer                              The world's most advanced
Nuix                                                email data analysis
http://nuix.com/                                and eDiscovery software

Reply via email to