有没有办法从 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/