H2 数据库:NIO JVM 错误消息是不是与 H2 相关(可能还有数据库损坏)?

Posted

技术标签:

【中文标题】H2 数据库:NIO JVM 错误消息是不是与 H2 相关(可能还有数据库损坏)?【英文标题】:H2 database: Is NIO JVM bug message related to H2 (and possibly database corruption)?H2 数据库:NIO JVM 错误消息是否与 H2 相关(可能还有数据库损坏)? 【发布时间】:2021-06-22 10:01:53 【问题描述】:

我们目前在嵌入式模式下使用 H2 版本 199,具有默认的 nio 文件协议和 MVStore 存储系统。在某些安装中,我们会在批处理操作后的几分钟内遇到数据库损坏(大约 30.000 次删除、插入和更新)。

在最后一次插入后的 45 秒内和应用检测到数据库损坏之前的大约 90 秒内,我们在日志文件中看到以下两行:

org.mortbay.io.nio.SelectorManager$SelectSet@3180ea95 JVM BUG(s) - injecting delay 3 times
org.mortbay.io.nio.SelectorManager$SelectSet@3180ea95 JVM BUG(s) - recreating selector 3 times, canceled keys 51 times

H2 是否对这些日志消息负责?它们是否与数据库损坏有关?

【问题讨论】:

【参考方案1】:

不,H2 不对这些消息负责。 谁是?我的 30 秒Google 搜索显示 Jetty 可能是罪魁祸首。

【讨论】:

谢谢@andrei。只是 NIO 日志消息和 H2 NIO 协议而不是异步协议的组合让我感到好奇。

以上是关于H2 数据库:NIO JVM 错误消息是不是与 H2 相关(可能还有数据库损坏)?的主要内容,如果未能解决你的问题,请参考以下文章

一个 JVM 中的多个独立 H2 数据库

JVM 专题十三:运行时数据区直接内存

是否可以在 H2 驱动程序连接上设置时区

JVM详解——直接内存

R2dbc无法使用tcp与h2数据库一起使用

jvm——内存模型