Hi,

I'm sorry I can't't create a testcase. The error behaves differently
every time. I have to correct from the my last post, that it runs fine
on the first round. I now always get an error on my first run. I
delete the old database files, start the db server and already then an
error occurs when I let my program run for the first time. Up to now I
have seen four different kinds of error. All caused by this same
procedure.
The error messages are in the attached link.

I tried some different settings but I think the most interessting one
is that I don't get any error when my program runs in single thread
mode. That means it only issues one query at a time but the database
is started with the MULTI_THREADED=1 option.

Here you can find the exceptions and some information how the workflow
in my program is operating:

https://docs.google.com/leaf?id=0B3y7SvKpZ6GsZmVhNzBjNDItYjdjOC00ZGE1LTk5NWItZTBjOWNkY2I4MmZl&hl=en&authkey=CNSp6v8G

I hope my report is of any use
Best regards
Stefan

On Aug 27, 11:13 am, Thomas Mueller <[email protected]>
wrote:
> Hi,
>
> From the exception it looks like it's trying to convert a CLOB to a
> BINARY, which is weird. Do you get the same error when you disable
> MULTI_THREADED? If it's really this problem, then I would like to fix
> the problem. Could you send me a test case so I can reproduce it? If
> not could you describe in detail what your application does (from a
> technical side)?
>
> Regards,
> Thomas
>
> On Thu, Aug 26, 2010 at 3:43 PM, Stefan <[email protected]> wrote:
> > Hello group,
>
> > I'm running the latest version 1.2.141 in MULTI_THREADED=1 mode. I'm
> > executing some queries in parallel and everything seems to work. After
> > that I rerun the former queries and then I got some of these
> > exceptions:
>
> > org.h2.jdbc.JdbcSQLException: Hexadecimal string with odd number of
> > characters: "http://www.informatik.uni-ulm.de/ki/aboxbench/semintec/
> > semintec.owl#MaleSex"; SQL statement:
> > INSERT INTO propertyDomain_d0 (property, domain, sourceId1,
> > sourceTable1, sourceId2, sourceTable2)
> >         SELECT dom.property, sc.super, MIN(dom.id) AS sourceId1,
> > 'propertyDomain' AS sourceTable, MIN(sc.id) AS sourceId2, 'subClass'
> > AS sourceTable
> >         FROM propertyDomain AS dom
> >                 INNER JOIN subClass AS sc ON sc.sub = dom.domain
> >         WHERE NOT EXISTS (
> >                 SELECT property, domain
> >                 FROM propertyDomain_d0 AS bottom
> >                 WHERE bottom.property = dom.property AND bottom.domain = 
> > sc.super
> >         )
> >         GROUP BY dom.property, sc.super [90003-141]
> >        at org.h2.message.DbException.getJdbcSQLException(DbException.java:
> > 327)
> >        at org.h2.message.DbException.get(DbException.java:167)
> >        at org.h2.message.DbException.get(DbException.java:144)
> >        at org.h2.util.StringUtils.convertStringToBytes(StringUtils.java:953)
> >        at org.h2.value.Value.convertTo(Value.java:760)
> >        at org.h2.value.ValueLob.convertTo(ValueLob.java:428)
> >        at org.h2.table.Table.compareTypeSave(Table.java:970)
> >        at org.h2.index.BaseIndex.compareValues(BaseIndex.java:297)
> >        at org.h2.index.BaseIndex.compareRows(BaseIndex.java:245)
> >        at org.h2.index.PageBtree.find(PageBtree.java:117)
> >        at org.h2.index.PageBtreeNode.find(PageBtreeNode.java:277)
> >        at org.h2.index.PageBtreeIndex.find(PageBtreeIndex.java:172)
> >        at org.h2.index.PageBtreeIndex.find(PageBtreeIndex.java:163)
> >        at org.h2.index.IndexCursor.find(IndexCursor.java:138)
> >        at org.h2.table.TableFilter.next(TableFilter.java:309)
> >        at org.h2.table.TableFilter.next(TableFilter.java:379)
> >        at org.h2.command.dml.Select.queryGroup(Select.java:307)
> >        at org.h2.command.dml.Select.queryWithoutCache(Select.java:574)
> >        at org.h2.command.dml.Query.query(Query.java:241)
> >        at org.h2.command.dml.Insert.insertRows(Insert.java:127)
> >        at org.h2.command.dml.Insert.update(Insert.java:82)
> >        at org.h2.command.CommandContainer.update(CommandContainer.java:70)
> >        at org.h2.command.Command.executeUpdate(Command.java:199)
> >        at org.h2.server.TcpServerThread.process(TcpServerThread.java:301)
> >        at org.h2.server.TcpServerThread.run(TcpServerThread.java:138)
> >        at java.lang.Thread.run(Thread.java:619)
>
> >        at org.h2.engine.SessionRemote.done(SessionRemote.java:489)
> >        at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:184)
> >        at 
> > org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:
> > 124)
> >        at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:109)
> >        at
> > de.derivo.u2r3.rules.ApplicationRule.applyCollective(ApplicationRule.java:
> > 34)
> >        at de.derivo.u2r3.rules.Rule.apply(Rule.java:71)
> >        at de.derivo.u2r3.util.RuleAction.apply(RuleAction.java:48)
> >        at de.derivo.u2r3.util.RuleAction.run(RuleAction.java:107)
> >        at 
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
> > 441)
> >        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >        at java.util.concurrent.ThreadPoolExecutor
> > $Worker.runTask(ThreadPoolExecutor.java:886)
> >        at java.util.concurrent.ThreadPoolExecutor
> > $Worker.run(ThreadPoolExecutor.java:908)
> >        at java.lang.Thread.run(Thread.java:619)
>
> > After that I restart the database. Sometimes a new run works,
> > sometimes I then get the following exception:
>
> > org.h2.jdbc.JdbcSQLException: File corrupted while reading record:
> > "type: 1". Possible solution: use the recovery tool; SQL statement:
> > INSERT INTO classAssertionEnt_d0 (entity, colClass, sourceId1,
> > sourceTable1, sourceId2, sourceTable2)
> >         SELECT ass.subject, dom.Domain, MIN(ass.id) AS sourceId1,
> > 'objectPropertyAssertion' AS sourceTable1, MIN(dom.id) AS sourceId2,
> > 'propertyDomain' AS sourceTable2
> >         FROM objectPropertyAssertion AS ass
> >                 INNER JOIN propertyDomain AS dom
> >                 ON ass.Property = dom.Property
> >         WHERE NOT EXISTS (
> >                 SELECT entity, colClass
> >                 FROM classAssertionEnt_d0 AS bottom
> >                 WHERE bottom.entity = ass.subject AND bottom.colClass = 
> > dom.domain
> >         )
> >         GROUP BY ass.subject, dom.Domain [90030-141]
> >        at org.h2.message.DbException.getJdbcSQLException(DbException.java:
> > 327)
> >        at org.h2.message.DbException.get(DbException.java:167)
> >        at org.h2.message.DbException.get(DbException.java:144)
> >        at org.h2.store.Data.readValue(Data.java:767)
> >        at org.h2.index.PageDataIndex.readRow(PageDataIndex.java:411)
> >        at org.h2.index.PageDataLeaf.getRowAt(PageDataLeaf.java:322)
> >        at org.h2.index.PageDataLeaf.getRow(PageDataLeaf.java:435)
> >        at org.h2.index.PageDataNode.getRow(PageDataNode.java:270)
> >        at org.h2.index.PageDataNode.getRow(PageDataNode.java:270)
> >        at org.h2.index.PageDataIndex.getRow(PageDataIndex.java:394)
> >        at org.h2.index.PageDataIndex.getRow(PageDataIndex.java:383)
> >        at org.h2.table.RegularTable.getRow(RegularTable.java:104)
> >        at org.h2.index.PageBtreeIndex.getRow(PageBtreeIndex.java:288)
> >        at org.h2.index.PageBtreeCursor.get(PageBtreeCursor.java:45)
> >        at org.h2.index.IndexCursor.get(IndexCursor.java:209)
> >        at org.h2.table.TableFilter.getValue(TableFilter.java:824)
> >        at org.h2.expression.ExpressionColumn.getValue(ExpressionColumn.java:
> > 167)
> >        at org.h2.index.IndexCondition.getCurrentValue(IndexCondition.java:
> > 120)
> >        at org.h2.index.IndexCursor.find(IndexCursor.java:99)
> >        at org.h2.table.TableFilter.next(TableFilter.java:309)
> >        at org.h2.command.dml.Select.queryFlat(Select.java:492)
> >        at org.h2.command.dml.Select.queryWithoutCache(Select.java:579)
> >        at org.h2.command.dml.Query.query(Query.java:241)
> >        at org.h2.expression.ConditionExists.getValue(ConditionExists.java:
> > 30)
> >        at org.h2.expression.ConditionNot.getValue(ConditionNot.java:31)
> >        at org.h2.expression.ConditionAndOr.getValue(ConditionAndOr.java:90)
> >        at org.h2.expression.Expression.getBooleanValue(Expression.java:185)
> >        at org.h2.command.dml.Select.queryGroup(Select.java:309)
> >        at org.h2.command.dml.Select.queryWithoutCache(Select.java:574)
> >        at org.h2.command.dml.Query.query(Query.java:241)
> >        at org.h2.command.dml.Insert.insertRows(Insert.java:127)
> >        at org.h2.command.dml.Insert.update(Insert.java:82)
> >        at org.h2.command.CommandContainer.update(CommandContainer.java:70)
> >        at org.h2.command.Command.executeUpdate(Command.java:199)
> >        at org.h2.server.TcpServerThread.process(TcpServerThread.java:301)
> >        at org.h2.server.TcpServerThread.run(TcpServerThread.java:138)
> >        at java.lang.Thread.run(Thread.java:619)
>
> >        at org.h2.engine.SessionRemote.done(SessionRemote.java:489)
> >        at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:184)
> >        at 
> > org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:
> > 124)
> >        at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:109)
> >        at
> > de.derivo.u2r3.rules.ApplicationRule.applyCollective(ApplicationRule.java:
> > 34)
> >        at de.derivo.u2r3.rules.Rule.apply(Rule.java:71)
> >        at de.derivo.u2r3.util.RuleAction.apply(RuleAction.java:48)
> >        at de.derivo.u2r3.util.RuleAction.run(RuleAction.java:107)
> >        at 
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
> > 441)
> >        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >        at java.util.concurrent.ThreadPoolExecutor
> > $Worker.runTask(ThreadPoolExecutor.java:886)
> >        at java.util.concurrent.ThreadPoolExecutor
> > $Worker.run(ThreadPoolExecutor.java:908)
> >        at java.lang.Thread.run(Thread.java:619)
>
> > How do I have to interpret the exceptions? How can I test to get more
> > specific errors?
>
> > Sincerely
> > Stefan
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "H2 Database" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/h2-database?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to