当我尝试向db" INSERT INTO invite_users VALUES(' id',user_name')""
添加新行时我收到此错误:
General error: "java.lang.IllegalStateException: Chunk 2089 no longer exists [1.4.181/9]"
可能是db的一些问题,因为当我尝试将同一行添加到新的db时 - 错误消失了。
2014年11月20日更新
好消息!我联系了H2 db的开发人员并发现他们将在下一个版本中修复该bug。 https://groups.google.com/forum/#!topic/h2-database/i_GHXExjotc2014年12月6日更新
一个简单的解决方法是通过附加"; mv_store = false"来禁用MVStore。到数据库URL。
但是,如果你需要旧的数据库,这个技巧将不起作用。它创建了新的数据库,扩展名为.h2.db而不是.mv.db
要克服这个,您需要创建旧数据库的SQL脚本" .mv.db" (使用“恢复”工具),然后使用" runscript ..."。
运行此脚本答案 0 :(得分:5)
在1.4.182版本中,检测何时不再引用块的机制可能存在问题。目前,这是reference counting
垃圾收集:通过实时计数
页面和生活空间。如果达到零,则可以在45秒后覆盖一个块。
一个简单的解决方法是使用page store
存储机制而不是mv_store
,方法是更改数据库连接以使用mv_store=false
作为缓解。
自版本1.4.177 Beta以来自动启用MV_STORE选项。
默认情况下,MV_STORE选项已启用,因此它正在使用new MVStore存储。默认情况下,MVCC设置设置为相同的值 作为MV_STORE设置,默认情况下也会启用它。对于 测试,可以通过附加“; MV_STORE = FALSE”来禁用这两个设置 和/或“; MVCC = FALSE”到数据库URL。