死锁问题求助
现在我要从文件中读入数据到表中,因数据量较大,采用多进程操作数据库,但是一直死锁,报以下错误,SQL error(-211)--ISAM error(-154)。 其中数据库为10.0,锁级别为行锁。我想既然为行锁,并且设置有10秒等待时间,为什么还会有这个错误?谢谢! -211 不能读取系统目录<目录表>;。数据库服务器在处理大多数语句时参照系统目录表。当不能读取这些重要的表时就产
生了严重的错误。检查伴随的ISAM错误代码以获得更多的信息。错误的影响取决于正
在执行的语句和特定的表,如下所示。
* CREATE TABLE语句,systabauth不能读取;该表可以被建立,但不能象正常
情况一样授权给PUBLIC。
* DROP TABLE语句,systables不能读取;不做任何动作。
* DROP TABLE语句,sysviews不能读取;该表将被取消,但任何依赖于该表的
视图将不能被自动取消。
* DROP VIEW语句,sysviews不能读取;不做任何动作。
* DROP INDEX语句,systables或sysindexs不能读取;不做任何动作。
* DROP SYNONYM语句,systables或syssynonyms不能读取;不做任何动作。
* DROP DATABASE语句,systables不能读取;不做任何动作。
* START DATABASE语句,systables不能读取;不做任何动作。
* DATABASE语句,systables或sysusers不能读取;该数据库不被选中
(没有当前数据库,后来的操作见错误-349)。
其它语句可能在错误被侦测出来之前已经部分完成了。滚回当前的事务并调查错误的
原因。使用实用工具bcheck或secheck(INFORMIX-OnLine的tbcheck或INFORMIX-
OnLine动态服务器的oncheck)来检查或修复索引。如有必要,从备份和逻辑日志磁带
上恢复数据库。 问题是我做的都是select、update、insert操作,怎么引起这个错误呢? -154 ISAM error: Lock Timeout Expired.
This network operation has been suspended, awaiting a response from
another database server, for the maximum duration allowed. The local
database server assumes that a distributed deadlock exists and that
this user request is awaiting a resource that was locked by a user in a
different system, which is awaiting a resource that this user owns.
Roll back the current transaction, and retry it after a delay. If this
error occurs frequently, ask the database server administrator to adjust
the length of the deadlock time-out interval.
This code is also returned when an explicit wait time limit expires;
that is, if you have SET LOCK MODE TO WAIT 3, and your request is
queued for more than 3 seconds for a lock, the operation ends with this
ISAM error code. 恩,是设置的行锁,等待时间为5秒。一个进程做插入操作,其它进程在做更新时报的错,SQL error(-244)--ISAM error(-154) 是不是一个进程的事务没有提交,锁没有解除,其它进程就不能做插入和更新等操作,所有才产生这个错误?如果是这样,就不能用多进程对同一个表做操作了吗?
回复 #6 yyqq88_2008 的帖子
表是行级锁还是页级锁?
页:
[1]