Informix 读取错误:无法执行物理顺序读取

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,尝试重新启动电脑,但似乎都没有释放独占锁

  • 我的一点阅读表明这些应该自动发布,但似乎并非如此

我怎样才能释放这些锁?任何帮助或指导表示赞赏:)