We are currently getting tons of these NIO closed channel exceptions. So many, that the trace.db file wrapped.
Done a bunch of searching and have come up empty. Recently upgrade to latest H2 and Hikari to try and fix.
org.h2.jdbc.JdbcSQLException: General error: "java.lang.IllegalStateException: Reading from nio:/home/network/Database.mv.db failed; file length -1 read length 1024 at 4378954 [1.4.194/1]"; SQL statement:
UPDATE STATUS SET ISALIVE=? WHERE STATUS_ID=? [50000-194]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.message.DbException.convert(DbException.java:295)
at org.h2.command.Command.executeUpdate(Command.java:266)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:160)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:146)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393)
at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431)
at org.datanucleus.store.rdbms.request.UpdateRequest.execute(UpdateRequest.java:376)
at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.updateObjectInTable(RDBMSPersistenceHandler.java:409)
at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.updateObject(RDBMSPersistenceHandler.java:383)
at org.datanucleus.state.StateManagerImpl.flush(StateManagerImpl.java:4585)
at org.datanucleus.flush.FlushOrdered.execute(FlushOrdered.java:106)
at org.datanucleus.ExecutionContextImpl.flushInternal(ExecutionContextImpl.java:4054)
at org.datanucleus.ExecutionContextImpl.processNontransactionalAtomicChanges(ExecutionContextImpl.java:1430)
at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1813)
at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:715)
at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:740)
at com.nimsoft.probes.network.snmpcollector.model.probe.SnmpDeviceStatusCache.updateStatus(SnmpDeviceStatusCache.java:90)
at com.nimsoft.snmppoller.poller.collector.snmp.PolledCollector.checkReachableAndReset(PolledCollector.java:492)
at com.nimsoft.snmppoller.poller.collector.snmp.PolledCollector.initialize(PolledCollector.java:71)
at com.nimsoft.snmppoller.poller.collector.snmp.PolledCollector.run(PolledCollector.java:241)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Reading from nio:/home/network/Database.mv.db failed; file length -1 read length 1024 at 4378954 [1.4.194/1]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:765)
at org.h2.mvstore.DataUtils.readFully(DataUtils.java:435)
at org.h2.mvstore.FileStore.readFully(FileStore.java:98)
at org.h2.mvstore.Page.read(Page.java:190)
at org.h2.mvstore.MVStore.readPage(MVStore.java:1952)
at org.h2.mvstore.MVMap.readPage(MVMap.java:741)
at org.h2.mvstore.Page.getChildPage(Page.java:217)
at org.h2.mvstore.Cursor.min(Cursor.java:129)
at org.h2.mvstore.Cursor.hasNext(Cursor.java:36)
at org.h2.mvstore.db.TransactionStore$TransactionMap$2.fetchNext(TransactionStore.java:1459)
at org.h2.mvstore.db.TransactionStore$TransactionMap$2.<init>(TransactionStore.java:1455)
at org.h2.mvstore.db.TransactionStore$TransactionMap.entryIterator(TransactionStore.java:1449)
at org.h2.mvstore.db.MVPrimaryIndex.find(MVPrimaryIndex.java:359)
at org.h2.mvstore.db.MVDelegateIndex.find(MVDelegateIndex.java:75)
at org.h2.index.BaseIndex.find(BaseIndex.java:128)
at org.h2.index.IndexCursor.find(IndexCursor.java:169)
at org.h2.table.TableFilter.next(TableFilter.java:468)
at org.h2.command.dml.Update.update(Update.java:102)
at org.h2.command.CommandContainer.update(CommandContainer.java:101)
at org.h2.command.Command.executeUpdate(Command.java:258)
... 23 more
Caused by: java.nio.channels.ClosedChannelException
at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:110)
at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:721)
at org.h2.store.fs.FileNio.read(FilePathNio.java:74)
at org.h2.mvstore.DataUtils.readFully(DataUtils.java:421)
... 41 more