I tried to shutdown my application and it hung again and then threw a
RuntimeException.
I had two applications sharing the H2 Database.
I shut them both down and one of them ( the embedded one presumably ) hung
for a couple of minutes before throwing this exception.
The following is a jstack trace of the H2 thread that was hanging (
exception to follow... )
java.lang.Thread.State: RUNNABLE
> at java.io.RandomAccessFile.seek(Native Method)
> at org.h2.store.fs.FileDisk.position(FilePathDisk.java:477)
> at org.h2.store.FileStore.seek(FileStore.java:293)
> at org.h2.store.PageStore.readPage(PageStore.java:1324)
> at org.h2.store.PageStore.getPage(PageStore.java:749)
> - locked <0xbbd89358> (a org.h2.store.PageStore)
> at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:233)
> at org.h2.index.PageDataNode.getNextPage(PageDataNode.java:232)
> at org.h2.index.PageDataLeaf.getNextPage(PageDataLeaf.java:399)
> at org.h2.index.PageDataCursor.nextRow(PageDataCursor.java:94)
> at org.h2.index.PageDataCursor.next(PageDataCursor.java:52)
> at org.h2.index.MultiVersionCursor.step(MultiVersionCursor.java:73)
> at org.h2.index.MultiVersionCursor.loadNext(MultiVersionCursor.java:57)
> - locked <0xbbd870c0> (a org.h2.engine.Database)
> at org.h2.index.MultiVersionCursor.next(MultiVersionCursor.java:108)
> - locked <0xbbd870c0> (a org.h2.engine.Database)
> at org.h2.index.IndexCursor.next(IndexCursor.java:277)
> at org.h2.table.TableFilter.next(TableFilter.java:360)
> at org.h2.command.dml.Delete.update(Delete.java:70)
> at org.h2.command.CommandContainer.update(CommandContainer.java:78)
> at org.h2.command.Command.executeUpdate(Command.java:254)
> - locked <0xbbd870c0> (a org.h2.engine.Database)
> at
> org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:198)
> - locked <0xbb87b968> (a org.h2.engine.Session)
> at org.h2.store.LobStorageBackend.removeLob(LobStorageBackend.java:314)
> - locked <0xbb87b968> (a org.h2.engine.Session)
> - locked <0xbbd870c0> (a org.h2.engine.Database)
> at
> org.h2.store.LobStorageBackend.removeAllForTable(LobStorageBackend.java:201)
> at
> org.h2.store.LobStorageBackend.removeAllForTable(LobStorageBackend.java:208)
> at org.h2.engine.Database.close(Database.java:1228)
> - locked <0xbbd870c0> (a org.h2.engine.Database)
> at org.h2.engine.Database.removeSession(Database.java:1141)
> - locked <0xbbd870c0> (a org.h2.engine.Database)
> at org.h2.engine.Session.close(Session.java:676)
> at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:384)
> - locked <0xbbf0faa0> (a org.h2.engine.Session)
> - locked <0xbbf0fde8> (a org.h2.jdbc.JdbcConnection)
> at
> com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:549)
> at com.jolbox.bonecp.BoneCP.destroyConnection(BoneCP.java:219)
> at
> com.jolbox.bonecp.DefaultConnectionStrategy.terminateAllConnections(DefaultConnectionStrategy.java:112)
> at com.jolbox.bonecp.BoneCP.shutdown(BoneCP.java:182)
> - locked <0xbbdf6f60> (a com.jolbox.bonecp.BoneCP)
> at com.jolbox.bonecp.BoneCPDataSource.close(BoneCPDataSource.java:143)
> at
> com.issinc.cds.db.H2JDBCBoneCP.closeConnectionPool(H2JDBCBoneCP.java:88)
> at com.issinc.cds.db.DBUtils.closeQuietly(DBUtils.java:187)
> at
> com.issinc.cds.sb.h2.AbstractH2DbConnection.cleanupExit(AbstractH2DbConnection.java:125)
> at
> com.issinc.cds.sb.main.AbstractApplicationEngine.shutdownH2Connections(AbstractApplicationEngine.java:1139)
>
From H2 Trace File...
> 10-24 20:10:16 database: close
> java.lang.RuntimeException: log.removeUntil not found: 392906 last 395508
> at org.h2.message.DbException.throwInternalError(DbException.java:242)
> at org.h2.store.PageLog.removeUntil(PageLog.java:749)
> at org.h2.store.PageLog.removeUntil(PageLog.java:724)
> at org.h2.store.PageStore.checkpoint(PageStore.java:440)
> at org.h2.store.PageStore.compact(PageStore.java:614)
> at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1320)
> at org.h2.engine.Database.close(Database.java:1270)
> at org.h2.engine.Database.removeSession(Database.java:1141)
> at org.h2.engine.Session.close(Session.java:676)
> at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:384)
> at
> com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:549)
> at com.jolbox.bonecp.BoneCP.destroyConnection(BoneCP.java:219)
> at
> com.jolbox.bonecp.DefaultConnectionStrategy.terminateAllConnections(DefaultConnectionStrategy.java:112)
> at com.jolbox.bonecp.BoneCP.shutdown(BoneCP.java:182)
> at com.jolbox.bonecp.BoneCPDataSource.close(BoneCPDataSource.java:143)
> at
> com.issinc.cds.db.H2JDBCBoneCP.closeConnectionPool(H2JDBCBoneCP.java:88)
> at com.issinc.cds.db.DBUtils.closeQuietly(DBUtils.java:187)
> at
> com.issinc.cds.sb.h2.AbstractH2DbConnection.cleanupExit(AbstractH2DbConnection.java:125)
> at
> com.issinc.cds.sb.main.AbstractApplicationEngine.shutdownH2Connections(AbstractApplicationEngine.java:1139)
> at
> com.issinc.cds.sb.main.AbstractApplicationEngine.afterCancelHook(AbstractApplicationEngine.java:756)
> at
> com.issinc.cds.sbrecv.main.impl.RecvDataSyncSQLEngine.afterCancelHook(RecvDataSyncSQLEngine.java:619)
> at
> com.issinc.cds.sb.main.AbstractApplicationEngine.executeShutdown(AbstractApplicationEngine.java:714)
> at com.issinc.cds.sb.main.AbstractMain$1.run(AbstractMain.java:72)
>
--
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.