Hi, I can reproduce the problem, thanks a lot for your help! This will be fixed in the next release. The problem is that the result set is re-used (which is good) but reading from the temporary file is not correctly synchronized.
As a workaround, I suggest to use the stable version 1.2.x. Another workaround is to disable re-using result sets by appending ;QUERY_CACHE_SIZE=0 to the database URL (I didn't test this workaround, but as far as I see it should work). Thanks again for your help! Regards, Thomas On Sun, Jan 16, 2011 at 10:45 AM, Abu Abdulla <[email protected]> wrote: > Hi, > > I'm using 1.3.149 Beta and it throws this exception: > > org.h2.jdbc.JdbcSQLException: File corrupted while reading record: > "type: 216". > Possible solution: use the recovery tool [90030-149] > at > org.h2.message.DbException.getJdbcSQLException(DbException.java:327) > at org.h2.message.DbException.get(DbException.java:167) > at org.h2.message.DbException.get(DbException.java:144) > at org.h2.store.Data.readValue(Data.java:749) > at > org.h2.result.ResultDiskBuffer.readRow(ResultDiskBuffer.java:157) > at > org.h2.result.ResultDiskBuffer.nextUnsorted(ResultDiskBuffer.java:170 > ) > at org.h2.result.ResultDiskBuffer.next(ResultDiskBuffer.java: > 163) > at org.h2.result.LocalResult.next(LocalResult.java:203) > at org.h2.jdbc.JdbcResultSet.nextRow(JdbcResultSet.java:2984) > at org.h2.jdbc.JdbcResultSet.next(JdbcResultSet.java:116) > at classes.MyApplication$30$3.run(MyApplication.java:3669) > org.h2.jdbc.JdbcSQLException: General error: > "java.lang.RuntimeException: unalig > ned seek C:\Users\me\Documents\MyApplication\db\MyApplicationDatabase. > 79a > a63ad7e675f68.0.temp.db pos -667571484" [50000-149] > at > org.h2.message.DbException.getJdbcSQLException(DbException.java:327) > at org.h2.message.DbException.get(DbException.java:156) > at org.h2.message.DbException.convert(DbException.java:279) > at org.h2.message.DbException.toSQLException(DbException.java: > 252) > at org.h2.message.TraceObject.logAndConvert(TraceObject.java: > 373) > at org.h2.jdbc.JdbcResultSet.next(JdbcResultSet.java:118) > at classes.MyApplication$30$3.run(MyApplication.java:3650) > Caused by: java.lang.RuntimeException: unaligned seek C:\Users\me > \Documents > \MyApplication\db\MyApplicationDatabase.79aa63ad7e675f68.0.temp.db pos > -667571 > 484 > at > org.h2.message.DbException.throwInternalError(DbException.java:226) > at org.h2.store.FileStore.seek(FileStore.java:299) > at > org.h2.result.ResultDiskBuffer.nextUnsorted(ResultDiskBuffer.java:167 > ) > at org.h2.result.ResultDiskBuffer.next(ResultDiskBuffer.java: > 163) > at org.h2.result.LocalResult.next(LocalResult.java:203) > at org.h2.jdbc.JdbcResultSet.nextRow(JdbcResultSet.java:2984) > at org.h2.jdbc.JdbcResultSet.next(JdbcResultSet.java:116) > ... 1 more > > > it happens when two threads are reading the db. i'm using one shared > connection. i returned back to v1.2.147 > > -- > You received this message because you are subscribed to the Google Groups "H2 > Database" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/h2-database?hl=en. > > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/h2-database?hl=en.
