Sch*_*chu
5
informix
locks
dbeaver
问题简而言之
- 使用 dbeaver 对几个表执行数据更新
- 后来从这些表中读取开始失败
- 看起来这些表中的行/页面被完成更新的会话锁定
- 似乎无法释放锁
细节
- 使用 dbeaver 连接到 informix 数据库
- 更新了表的一行中的一列
- 向另一个表添加了几行
- ran 选择验证更新
- 运行一个依赖于这些表的 .net 应用程序,当它尝试从此表中读取数据时,它开始抛出错误
在 dbeaver 中打开另一个会话,运行选择来查找我更新的行,现在我得到相同的错误
- 对于有更新的表... SQL 错误 [IX000]:无法执行物理顺序读取来获取下一行。无法执行物理顺序读取来获取下一行。java.sql.SQLException:ISAM 错误:记录已锁定。
- 对于带有插入的表... SQL 错误 [IX000]:无法通过索引在文件中定位。无法通过索引在文件中定位。java.sql.SQLException:ISAM 错误:键值已锁定
深入研究了一些错误,了解到这可能是由于表/页面/行被锁定所致
- 使用表 sysmaster:syslocks 拉出表上的当前锁
- 确认更新的表上存在排他页锁(可能是排他行锁,不确定)
- 确认更新的表上存在独占意向表锁
确认上述两个确实是由我的 dbeaver 会话使用 sysmaster:syssessions 表启动的
尝试重新启动 dbeaver,尝试重新启动电脑,但似乎都没有释放独占锁
- 我的一点阅读表明这些应该自动发布,但似乎并非如此
我怎样才能释放这些锁?任何帮助或指导表示赞赏:)