Hi,
We have been using H2 for a while now and have occasionally received the
following exception when records are read just after being written (often
by a different thread):
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception:
"java.io.IOException: org.h2.message.DbException: IO Exception:
""java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception:
""""Missing lob: 3113078"""" [90028-172]"" [90028-172]"; "lob: null table:
48 id: 3113078" [90031-172]
at
org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:158)
at
org.h2.message.DbException.convertIOException(DbException.java:315)
at org.h2.value.ValueLobDb.getString(ValueLobDb.java:224)
at org.h2.jdbc.JdbcResultSet.getString(JdbcResultSet.java:279)
We have managed to work around this problem in most cases as we didn't need
to read the LOB data or we could change the data type to VARCHAR. However
this does appear to be a bug in the H2 transaction management so thought I
would create this topic. I can only guess that the LOB data is being
written asynchronously and is not yet ready before the record is read. Is
this expected?
We originally had 2 LOB columns: one for storing a Windows path and another
to hold an XML document. The column for the path has been changed to a
VARCHAR but the XML document column has remained a LOB. We have managed to
remove most code where this column is read but I am concerned the error
could still arise.
We have also found that a larger table / LOB value can trigger this
problem. Any ideas?
Regards,
Daniel Stone
--
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/groups/opt_out.