Sorry, but no. Running things like databases on network shares is generally a bad idea.
On Wednesday, 8 May 2013, wrote: > Hi, > > We are using H2 in an environment where multiple vms access the database > file over a windows network share using > AUTO_SERVER=TRUE;AUTO_RECONNECT=TRUE to allow whichever vm can start the > database to be the server. > > We are experiencing some stability issues which look like they are related > to access to the network share being lost, at least temporarily. > > The following exception will start showing in our trace.db file, even > after the share is once again accessible: > > 04-25 13:23:14 database: flush > org.h2.message.DbException: IO Exception: "java.io.IOException: Write > error"; "//SVR/db/store.h2.db" [90031-168] > at org.h2.message.DbException.get(DbException.java:158) > at org.h2.message.DbException.convertIOException(DbException.java:315) > at org.h2.store.FileStore.write(FileStore.java:330) > at org.h2.security.SecureFileStore.write(SecureFileStore.java:64) > at org.h2.store.PageStore.writePage(PageStore.java:1327) > at org.h2.store.PageStreamData.write(PageStreamData.java:105) > at org.h2.store.PageOutputStream.storePage(PageOutputStream.java:146) > at org.h2.store.PageOutputStream.flush(PageOutputStream.java:154) > at org.h2.store.PageLog.flushOut(PageLog.java:856) > at org.h2.store.PageLog.flush(PageLog.java:663) > at org.h2.store.PageStore.flushLog(PageStore.java:986) > at org.h2.engine.Database.flush(Database.java:1780) > at org.h2.store.WriterThread.run(WriterThread.java:86) > at java.lang.Thread.run(Unknown Source) > Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: > "java.io.IOException: Write error"; "//SVR/db/store.h2.db" [90031-168] > at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) > ... 14 more > Caused by: java.io.IOException: Write error > at java.io.RandomAccessFile.writeBytes(Native Method) > at java.io.RandomAccessFile.write(Unknown Source) > at org.h2.store.fs.FileDisk.write(FilePathDisk.java:438) > at org.h2.store.fs.FileUtils.writeFully(FileUtils.java:372) > at org.h2.store.FileStore.write(FileStore.java:327) > ... 11 more > > > Other client connections will usually get errors like: > > org.h2.jdbc.JdbcSQLException: Timeout trying to lock table "STORE_ITEM"; > SQL statement: > > If we query for locks (SELECT * FROM INFORMATION_SCHEMA.LOCKS ) there > often will not be any. Calling SHUTDOWN will shutdown the database and > allow all the vms to reconnect. > > If there is a lock, CANCEL_SESSION(<offending session>) will return false. > If we call SET EXCLUSIVE 2, all other connections will be closed except > for the connection with the lock. If we attempt to SHUTDOWN, we get the > following error: > > IO Exception: "java.io.IOException: Write error"; "//SVR/db/store.h2.db"; > SQL statement: > shutdown [90031-168] 90031/90031 (Help) > > In this scenario, only killing the VM with running the database seems to > be the only solution. > Is the any way to capture this exception (i.e. flush error) in the vm in > which the server is running and restart the database in response? > > Thanks > > -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:_e({}, > 'cvml', 'h2-database%[email protected]');>. > To post to this group, send email to > [email protected]<javascript:_e({}, 'cvml', > '[email protected]');> > . > Visit this group at http://groups.google.com/group/h2-database?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
