java - 如何从 Java 中释放 Informix 锁

标签 java informix

有没有办法从 Java 中释放 Informix 中的锁?

[Error Code: -107, SQL State: IX000]  ISAM error: record is locked

在我们的测试环境中,出现了很多锁异常,解决的唯一方法就是重启数据库。

PS:我不是在寻找数据库专家的解决方案。我想通过 Java 或 Groovy 解决这个问题。

最佳答案

发生的情况是另一个用户锁定了您想要的记录;这通常是暂时的,并且使用 SET LOCK MODE TO WAIT 往往就足够了。

但是可以通过使用索引来避免此错误,如果索引已经存在,则数据分布已过时,您需要更新统计信息

您确实应该与您的DBA讨论此行为。

要查找对相关表具有锁定的 session ,您可以使用 syslocks table :

SELECT  * 
FROM    sysmaster:syslocks
WHERE   dbsname     = '<DATABASE>'
        AND tabname = '<TABLE>';

要终止 session ,您必须能够发出 onmode -z .

即使是测试环境,这也不是一个好的做法。测试环境的目的是调试,但这不是调试。但退回IDS都不是一个好的做法。

关于java - 如何从 Java 中释放 Informix 锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30799711/

相关文章:

java - 如何使用 Jersey Web 服务发布多个文件(图像)。?

java - CommonsRequestLoggingFilter 与 Logstash StructuredArgument 的使用

java - getGenerateKeys 返回一个空的 ResultSet

sql - 一次仅选择一组特定的行

.net - ibm.data.informix 没有从数据库中获取正确的数据

java - Spring Roo 仅用于制作网站的骨架吗?

java - 使用java扫描器扫描字母和 float

java - 接收Activity的Android实用方法

sql - 将 DB2 驱动程序与 Informix 一起使用

c++ - 如何将货币值四舍五入到最接近的 $5.00 区间?