Berkeley DB环境问题
Berkeley DB Environment issues
所以我们使用Berkeley DB,我们的API使用BDB c++ API。我们最近在数据库中添加了一些新的索引。添加新索引后,我们需要迁移所有旧数据,以便在旧记录上添加新索引,从那时起,每当我们启动向数据库写入的进程时,我们都会收到这些警告:
BDB2058警告:在加入环境时忽略DB_SET_LOCK_TIMEOUT。BDB2059警告:在加入环境时忽略DB_SET_TXN_TIMEOUT .
如果我理解正确的话,我们现在冒了死锁的风险,因为它"忽略"了我们设置的超时。当尝试随机写入数据库时,我还看到进程挂起。唯一的解决办法就是现在就重新开始。我的问题是,是否有人知道什么会导致这些警告,或者我该如何调试Environment实例化来找出原因?如有任何帮助或建议,不胜感激。
超时可能是dbenv环境的持久全局属性,而不是dbenv的每个使用实例的属性。
您可以尝试在数据库上运行db_recover来删除__db. conf。NNN文件。
否则,您可能有多个进程共享一个dbenv,并且警告指示后面的进程正在尝试更改已经设置的属性。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- Vulkan + GLFW + Cmake在Linux环境下的链接问题
- 多线程环境中的输出字符串流出现问题
- 为英特尔C++编辑器"GCC not found"设置环境变量时出现问题
- 在多线程环境中使用Mysql++的问题
- 将字符串输入与类数组值进行比较时出现问题C++(Unix 环境)(家庭作业)
- Berkeley DB环境问题
- 指针转换到64位环境中的长移植问题