Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java H2 db';区块不再存在';错误_Java_Database_H2_H2db - Fatal编程技术网

Java H2 db';区块不再存在';错误

Java H2 db';区块不再存在';错误,java,database,h2,h2db,Java,Database,H2,H2db,当我尝试向db添加新行时,“插入受邀请的用户值('id',user\u name')” 我得到了这个错误: General error: "java.lang.IllegalStateException: Chunk 2089 no longer exists [1.4.181/9]" 可能是db的一些问题,因为当我尝试将同一行添加到新的db时,错误消失了 2014年11月20日更新 好消息!我联系了H2DB的开发人员,发现他们将在下一个版本中修复这个bug。 2014年12月6日更新 一个

当我尝试向db添加新行时,“插入受邀请的用户值('id',user\u name')”

我得到了这个错误:

General error: "java.lang.IllegalStateException: Chunk 2089 no longer exists [1.4.181/9]"
可能是db的一些问题,因为当我尝试将同一行添加到新的db时,错误消失了

2014年11月20日更新

好消息!我联系了H2DB的开发人员,发现他们将在下一个版本中修复这个bug。

2014年12月6日更新

一个简单的解决方法是通过在数据库URL中附加“mv_store=false”来禁用MVStore

但是如果您需要旧的db,这个技巧将不起作用。它创建新的数据库,扩展名为.h2.db,而不是.mv.db


要克服此问题,您需要为旧数据库“.mv.db”(使用恢复工具)创建SQL脚本,然后使用“runscript…”运行此脚本。

在版本1.4.182中,检测块何时不再被引用的机制可能有问题。目前,这是
引用计数
垃圾收集:通过计算活动 页面和活动空间。如果该值为零,则块可以在45秒后被覆盖

一个简单的解决方法是使用
page store
存储机制,而不是
mv_store
,方法是将数据库连接更改为使用
mv_store=false
作为缓解措施

MV_存储选项自版本起自动启用

默认情况下,MV_存储选项处于启用状态,因此它使用新的 MVStore存储。默认情况下,MVCC设置设置为相同的值 作为MV_存储设置,因此默认情况下也会启用。对于 在测试中,可以通过附加“MV_STORE=FALSE”来禁用这两个设置 和/或“MVCC=FALSE”添加到数据库URL


可能很有趣:还有@JimGarrison是的,谢谢。我已经读过了,就这些。这是一个完整的示例,我只是尝试将行添加到H2 db“INSERT INTO invested_users VALUES('id','user_name')”。我觉得通过web界面这样做听起来像是数据库问题,而不是应用程序问题。你使用的是哪个版本的h2db?@PierAlexandreBouchard不,这个解决方案对我不起作用。它会创建新数据库,但我需要旧数据库。@PierAlexandreBouchard有可能克服这个问题吗?您不可能将旧数据库中的行复制到新数据库中?@PierAlexandreBouchard它适合我,如何做到这一点?请阅读此处的脚本语句: