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