Hi,
> Caused by: java.lang.RuntimeException: rowcount remaining=-1
MD_SEGMENTS
at org/h2/message/Message.getInternalError (Unknown Source)
at org/h2/table/TableData.addIndex (Unknown Source)
at org/h2/command/ddl/CreateIndex.update (Unknown Source)
This looks like a database corruption. Most likely you can open the
database using the database URL of the form jdbc:h2:~/test;RECOVER=1
but I still have some questions, see below.
> What is supposed to happen when the database is open if the index file
> was deleted, but the transaction log contains some data referring to
> the deleted index file ?
As the indexes are re-built after opening anyway, the entries are ignored.
- What is your database URL?
- You can find out if the database is corrupted when running
SCRIPT TO 'test.sql'
- What version H2 are you using? (it looks like version 1.1.102)
- Did you use multiple connections?
- The first workarounds is: append ;RECOVER=1 to the database URL.
Does it work when you do this?
- The second workarounds is: delete the index.db file
(it is re-created automatically) and try again. Does it work when
you do this?
- The third workarounds is: use the tool org.h2.tools.Recover to create
the SQL script file, and then re-create the database using this script.
Does it work when you do this?
- With which version of H2 was this database created?
You can find it out using:
select * from information_schema.settings where name='CREATE_BUILD'
- Do you use any settings or special features (for example, the setting LOG=0,
or two phase commit, linked tables, cache settings)?
- Is the application multi-threaded?
- What operating system, file system, and virtual machine
(java -version) do you use?
- How big is the database (file sizes)?
- Is the database usually closed normally, or is process terminated forcefully
or the computer switched off?
- Is it possible to reproduce this problem using a fresh database
(sometimes, or always)?
- Are there any other exceptions (maybe in the .trace.db file)?
Could you send them please?
- Do you still have any .trace.db files, and if yes could you send them?
- Could you send the .data.db file where this exception occurs?
> 1. backup your files (don't skip this step)
> 2. delete the index file
Sure, this is a good idea
> 3. delete the log file
You shouldn't do this, because you will lose committed transactions,
and because it will leave the database in an inconsistent state.
Regards,
Thomas
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---