Part of my test (including the database) runs in a forked process created using ProcessBuilder. I call Process#destroy to destroy the JVM that runs the database. It seems that the destroy call triggers a SIGTERM, which is not as abrupt as I was thinking.
Regards, Laurent On Thursday, July 23, 2015 at 7:31:28 PM UTC+2, Thomas Mueller wrote: > > Hi, > > How do you kill the database? > > Regards, > Thomas > > > On Thu, Jul 23, 2015 at 5:21 PM, Laurent Pellegrino < > [email protected] <javascript:>> wrote: > >> Hello, >> >> I am using H2 version 1.4.187 along with Hibernate in order to persist >> some data for test. These data contain some BLOBs which are inserted in the >> DB using transactions. Once transactions are finished, the database is >> killed abruptly and then restarted. >> >> Unfortunately, when the database is restarted, if I execute a query that >> access to some BLOB data I get an exception. >> >> Is it a known issue ? is there a workaround while still using MVCC ? is a >> fix planned soon ? >> >> Below is a copy of the exception mentioned previously: >> >> [Scheduler output]: Caused by: org.hibernate.HibernateException: >>> IOException occurred reading a binary value >> >> [Scheduler output]: at >>> org.hibernate.type.descriptor.java.DataHelper.extractBytes(DataHelper.java:191) >> >> [Scheduler output]: at >>> org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:137) >> >> [Scheduler output]: at >>> org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:44) >> >> [Scheduler output]: at >>> org.hibernate.type.descriptor.sql.BlobTypeDescriptor$1.doExtract(BlobTypeDescriptor.java:65) >> >> [Scheduler output]: at >>> org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) >> >> [Scheduler output]: at >>> org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267) >> >> [Scheduler output]: at >>> org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) >> >> [Scheduler output]: at >>> org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) >> >> [Scheduler output]: at >>> org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338) >> >> [Scheduler output]: at >>> org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2969) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1696) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1628) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.getRow(Loader.java:1515) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:726) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.processResultSet(Loader.java:953) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.doQuery(Loader.java:921) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.doList(Loader.java:2554) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.doList(Loader.java:2540) >> >> [Scheduler output]: at >>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) >> >> [Scheduler output]: at org.hibernate.loader.Loader.list(Loader.java:2365) >> >> [Scheduler output]: at >>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) >> >> [Scheduler output]: at >>> org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) >> >> [Scheduler output]: at >>> org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) >> >> [Scheduler output]: at >>> org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) >> >> [Scheduler output]: at >>> org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) >> >> [Scheduler output]: at >>> org.ow2.proactive.scheduler.core.db.SchedulerDBManager.loadJobResult(SchedulerDBManager.java:1297) >> >> [Scheduler output]: at >>> org.ow2.proactive.scheduler.core.db.SchedulerDBManager.access$1700(SchedulerDBManager.java:76) >> >> [Scheduler output]: at >>> org.ow2.proactive.scheduler.core.db.SchedulerDBManager$29.executeWork(SchedulerDBManager.java:1227) >> >> [Scheduler output]: at >>> org.ow2.proactive.scheduler.core.db.SchedulerDBManager$29.executeWork(SchedulerDBManager.java:1203) >> >> [Scheduler output]: at >>> org.ow2.proactive.scheduler.core.db.TransactionHelper.runWithoutTransaction(TransactionHelper.java:95) >> >> [Scheduler output]: ... 8 more >> >> [Scheduler output]: Caused by: java.io.IOException: Block not found in id >>> [1, -30, 7, 5] [1.4.187/50] >> >> [Scheduler output]: at >>> org.h2.mvstore.StreamStore$Stream.read(StreamStore.java:466) >> >> [Scheduler output]: at java.io.InputStream.read(InputStream.java:101) >> >> [Scheduler output]: at >>> org.hibernate.type.descriptor.java.DataHelper.extractBytes(DataHelper.java:183) >> >> [Scheduler output]: ... 38 more >> >> [Scheduler output]: Caused by: java.lang.IllegalStateException: Block 5 >>> not found [1.4.187/50] >> >> [Scheduler output]: at >>> org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773) >> >> [Scheduler output]: at >>> org.h2.mvstore.StreamStore.getBlock(StreamStore.java:388) >> >> [Scheduler output]: at >>> org.h2.mvstore.StreamStore$Stream.nextBuffer(StreamStore.java:503) >> >> [Scheduler output]: at >>> org.h2.mvstore.StreamStore$Stream.read(StreamStore.java:460) >> >> [Scheduler output]: ... 40 more >> >> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/h2-database. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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.
