我有一个更新表中行的过程。此程序每天执行200次。好吧,在5-6次,它给出例外 -244。我认为有人用select选择了行,并且更新了该行。 我尝试过的是将隔离设置为Dirty Read但它没有帮助...... 任何人都知道如何解决这个问题
以下是解释此错误代码的含义
-244无法执行物理订单读取以获取下一行。
数据库服务器无法读取包含一行a的磁盘页面 表。有关更多信息,请查看随附的ISAM错误代码。一个 可能存在硬件问题,或者表或索引可能存在 损坏。如果查询使用脏读隔离级别,则此 错误代码可能是由于读取数据中的数据而导致的正常行为 暂时不一致的状态来自同一个并发更新 数据
除非ISAM错误代码或操作系统消息指向 另一个原因,运行oncheck实用程序(使用IBM Informix SE进行secheck 或者使用IBM Informix OnLine进行tbcheck来检查和修复表和 索引。
答案 0 :(得分:2)
如果是一个简单的锁定错误,例如113'文件被锁定' (检查ISAM错误),您可以尝试增加SPL等待锁定表的时间。
类似于设置锁定模式以等待10'在此之前,更新可能会有效。