I realized I should have perhaps posted the connection string so here it is jdbc:h2:./db/test;IFEXISTS=TRUE;LOCK_TIMEOUT=30000 There is nothing interesting or special about it though
Tono On Friday, April 25, 2014 10:47:19 AM UTC+2, too wrote: > > Hello, > I am experimenting with H2 (v1.4.177) a little and ran into following > errors. > My guess is that the main problem is the IndexOutOfBoundsException > in MVMap which I can again only guess to have been caused by some > concurrency problem. This happened to me only once in 4 runs of the process > (few threads inserting high volumes of data concurrently). > Secondary problem might be just incorrect error handling but it appears > that H2 db was left in inconsistent state and all subsequent DML commands > failed with "Corrupt page count" error and later with "Transaction is > closed". According to logs we even reestablished connection to H2 after > the IndexOutOfBoundsException error which would indicate the page count > problem got persisted. > > Here is the first exception where MVMap#searchRoot failed > > org.h2.jdbc.JdbcSQLException: General error: > "java.lang.IndexOutOfBoundsException: Index: 1, Size: 1"; SQL statement: > insert into TFT556PROCEDURESTEP (ID_OBJECT, FG_ALLOW_NEG_VALS, FG_ALLOW_TIME, > NO_EARLST_DT_ALLOW, TXT_EDIT_MASK, TP_FORMAT, DS_STEP, TXT_HELP, > TXT_INSTRUCTION, NO_LATEST_DT_ALLOW, NO_MAX_DAYS_FUTURE, NO_MAX_DAYS_PAST, > NO_MAX_VALUE, NO_MIN_VALUE, CD_PARAMETER, CD_PARENT_STEP, NO_PRECISION, > NO_SEQUENCE, DS_SHORT_TEXT, CD_STEP, TP_STEP, TXT_SUMMARY_FIELD, > FG_UE_FROM_MOBILE, FG_USE_STEP_CMNT, TXT_USER_EXIT_NAME, CD_PROCEDURE, > NO_PROCEDURE_VERSION, NO_RECORD_TIMESTAMP, ID_VERSION, ID_PREV_VERSION1, > ID_PREV_VERSION2, ID_USER, TS_USER, TS_SERVER, FG_OBJ_DELETED, ID_MSG_RCVD, > IND_SYNC, IND_COMMS_PRIORITY) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, > ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) > [50000-177] > at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) > at org.h2.message.DbException.get(DbException.java:167) > at org.h2.message.DbException.convert(DbException.java:294) > at org.h2.mvstore.db.MVTable.addRow(MVTable.java:615) > at org.h2.command.dml.Insert.insertRows(Insert.java:157) > at org.h2.command.dml.Insert.update(Insert.java:115) > at org.h2.command.CommandContainer.update(CommandContainer.java:79) > at org.h2.command.Command.executeUpdate(Command.java:254) > at > org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:199) > ... > at java.lang.Thread.run(Thread.java:662) > Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 > at java.util.ArrayList.RangeCheck(ArrayList.java:547) > at java.util.ArrayList.get(ArrayList.java:322) > at org.h2.mvstore.MVMap.searchRoot(MVMap.java:1091) > at org.h2.mvstore.MVMap.removeUnusedOldVersions(MVMap.java:900) > at org.h2.mvstore.MVMap.newRoot(MVMap.java:681) > at org.h2.mvstore.MVMap.put(MVMap.java:113) > at org.h2.mvstore.db.TransactionStore.log(TransactionStore.java:267) > at > org.h2.mvstore.db.TransactionStore$Transaction.log(TransactionStore.java:691) > at > org.h2.mvstore.db.TransactionStore$TransactionMap.trySet(TransactionStore.java:1087) > at > org.h2.mvstore.db.TransactionStore$TransactionMap.set(TransactionStore.java:1010) > at > org.h2.mvstore.db.TransactionStore$TransactionMap.put(TransactionStore.java:988) > at org.h2.mvstore.db.MVPrimaryIndex.add(MVPrimaryIndex.java:141) > at org.h2.mvstore.db.MVTable.addRow(MVTable.java:611) > ... 13 more > > And here is what happened to all subsequent attempts to modify data > > org.h2.jdbc.JdbcSQLException: General error: > "java.lang.IllegalStateException: Corrupt page count -232 [1.4.177/3]"; SQL > statement: > COMMIT [50000-177] > at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) > at org.h2.message.DbException.get(DbException.java:167) > at org.h2.message.DbException.convert(DbException.java:294) > at org.h2.command.Command.executeUpdate(Command.java:262) > at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:467) > ... > ... 5 more > Caused by: java.lang.IllegalStateException: Corrupt page count -232 > [1.4.177/3] > at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:757) > at org.h2.mvstore.MVStore.applyFreedSpace(MVStore.java:1201) > at org.h2.mvstore.MVStore.storeNow(MVStore.java:970) > at org.h2.mvstore.MVStore.commitAndSave(MVStore.java:893) > at org.h2.mvstore.MVStore.commit(MVStore.java:854) > at > org.h2.mvstore.db.TransactionStore.endTransaction(TransactionStore.java:452) > at org.h2.mvstore.db.TransactionStore.commit(TransactionStore.java:343) > at > org.h2.mvstore.db.TransactionStore$Transaction.commit(TransactionStore.java:764) > at org.h2.engine.Session.commit(Session.java:488) > at > org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:47) > at org.h2.command.CommandContainer.update(CommandContainer.java:79) > at org.h2.command.Command.executeUpdate(Command.java:254) > ... 7 more > > > thanks > Tono > -- 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.
