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.

Reply via email to