Hello, According to documentation, *closing the last connection closes the database* (http://www.h2database.com/html/cheatSheet.html) and *when closing the database, the database is automatically compacted for up to 200 milliseconds *(http://www.h2database.com/html/features.html#compacting). I guess these together may cause data loss & corruption when a single connection is repeatedly created, data altered, connection closed, new connection created, etc. - eventually resulting in exception such as "Block not found in id [1, -128, 8, 42] [1.4.186/50]" when trying to access the DB. Test case here: http://www.mysticpaste.com/view/RzEhFjCXwT . Version 1.3.176 (last stable) works fine with this, version 1.4.186 crashes and corrupts data.
The behavior can be fixed by appending ";DB_CLOSE_DELAY=-1" to the DB URL, i.e. disabling autoclosing DB when last connection is closed. I though it might have had something to do with 1.4's new "FS" file locking protocol (h ttp://www.h2database.com/html/advanced.html#file_locking_protocols), but changing that to old "FILE" doesn't seem to help. Of course this is not how a DB connection is typically used - when using a connection pool, this would go unnoticed - and I found this purely by accident. But it's a bug anyway, isn't it? Best Regards, Joonas -- 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. For more options, visit https://groups.google.com/d/optout.
