We have been running H2 database in Server mode for almost 7 months and we 
have seen 4 DB corruptions till now. 3 just in last week.

1- We start the H2 tcp server with tcpAllowOthers flag on default port 9092.
2- Within my application we connect to the database using 
jdbc:h2:tcp://<server_ip>//<path/to/db/test;AUTO_SERVER=TRUE. 

3- Multiple different JVMs can connect to the database using the same 
string above.
4- We also have one table with CLOB/BLOBs stored inside. In some cases, the 
size of file stored in DB in that column could be ~100MB. (we know that is 
not good but currently we are stuck with this solution).

After digging into the corruption problem, we found that we use 
tcpAllowOthers and AUTO_SERVER=TRUE at the same time. Due to this reason, 
we have sometimes "server" property in the .lock.db file and sometimes not. 
In all the corruption cases, we found a .lock.db file with missing "server" 
property. We will remove this property soon.


The above behavior has been for almost 7 months and we never had a problem 
until last week. So, I am guessing that something else could be the cause 
of corruption. How to anaylze the problem?

Note: 
After corruption, I was able to recover the database. All the tables were 
working fine except one table. Within that table, I was able to access all 
the rows except the last one. Within the last row, I was even able to 
access all the columns except one. I tried to get the content of this 
column to understand the problem but failed. How to analyze the cause of 
corruption?


Any help would be appreciated.

-- 
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 https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to