Berkeley DB 错误:无法锁定 je.lck 文件

Posted

技术标签:

【中文标题】Berkeley DB 错误:无法锁定 je.lck 文件【英文标题】:Berkeley DB error: The je.lck file could not be locked 【发布时间】:2011-12-23 05:46:43 【问题描述】:

我们在使用 berkeley DB 运行 java 程序时遇到 ff 错误。

“无法锁定环境以供单个写入者访问。ENV_LOCKED:无法锁定 je.lck 文件。环境无效,必须关闭。”

知道错误的原因是什么,我们如何解决这个问题。

谢谢!

【问题讨论】:

【参考方案1】:

您的 Berkeley DB 设置为“单一写入者访问”。您必须有另一个进程已经写入并有效锁定它。

您应该终止另一个或多个进程并继续。不知道 BerkeleyDB 是否可以设置为多个写入者访问,抱歉。

PS - je.lck 是文件系统中实现锁的文件。删除它还可能释放数据库供您的进程访问并撤销其他进程的访问权限。

【讨论】:

删除锁文件后是否强制重启新进程? @nathaner 自从我上次使用 Berkeley DB 以来已经太久了,我不知道,但错误消息确实暗示必须重新启动。我可以建议您通过运行 2 个进程进行试验,当出现一个错误时删除 je.lck 文件,然后检查它是否已恢复。祝你好运。【参考方案2】:

在我的情况下,当应用程序终止并且环境未正确关闭时会出现问题。你需要关闭它。

要解决打开问题,您需要删除数据库中的 *​​.lck 文件

【讨论】:

以上是关于Berkeley DB 错误:无法锁定 je.lck 文件的主要内容,如果未能解决你的问题,请参考以下文章

Berkeley DB(无法定位组件)

Berkeley DB 在没有交易的情况下损坏?

Berkeley DB 中的突变错误

berkeley DB:无法编译 C++ 代码

berkeley DB:无法编译 C++ 代码

无法从 C 中的 Berkeley DB 检索值