2016-11-28 120 views
1

经过一天的寻找&试图解决问题的时间在这里问。火鸟更新声明冻结

我们多年来使用Firebird(大约6年)和很久以前更新的当前版本2.5.2我们遇到了无法更新语句的问题。

SQL语句正常,即使“where”条件与主键一起使用。

问题:更新要点击后卡住:执行
一)从PHP脚本从Flamerobin或IBQ其冻结直接返回内部服务器错误500
B),并在所有

    没有响应
  1. 提示:SQL这wasnt工作是清洁火鸟之后的工作(停止&开始),但经过一段时间它会再次陷入
  2. 提示:选择是或,问题是只与UPDATE
  3. 提示:我二叔d都在这里描述https://www.ibphoenix.com/resources/documents/how_to/doc_5 redump后没有错误,但出现问题
  4. 提示(这是给我的错误上gfix -v - 全数据库文件的redump):我们运行相同的配置有多个数据库文件更多的服务器但是这仅发生在一台服务器上的一个DB文件中的一个表中。

经过一番调查后,我终于得到这个从fbtrace:

2016-11-28T14:25:28.4410 (9473:0x7f1489cb1f08) PREPARE_STATEMENT 
    phones.fdb (ATT_273856, VILAS:NONE, UTF8, TCPv4:10.1.1.195) 
    /usr/bin/flamerobin:10868 
     (TRA_78838, CONCURRENCY | WAIT | READ_WRITE) 

Statement 422749: 
------------------------------------------------------------------------------- 
UPDATE TELEFONI_CISLA SET DATUM_PRIDANI = '2011-7-3' WHERE ID = '17274' 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
PLAN (TELEFONI_CISLA INDEX (RDB$PRIMARY4)) 
     0 ms 

2016-11-28T14:25:28.4780 (9473:0x7f1489cb1f08) EXECUTE_STATEMENT_START 
    phones.fdb (ATT_273856, VILAS:NONE, UTF8, TCPv4:10.1.1.195) 
    /usr/bin/flamerobin:10868 
     (TRA_78838, CONCURRENCY | WAIT | READ_WRITE) 

Statement 422749: 
------------------------------------------------------------------------------- 
UPDATE TELEFONI_CISLA SET DATUM_PRIDANI = '2011-7-3' WHERE ID = '17274' 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
PLAN (TELEFONI_CISLA INDEX (RDB$PRIMARY4)) 

林的想法检查什么,几乎失去了。只是想让你知道,我们没有改变FB或服务器配置中的任何东西。

感谢您的任何有用的帮助。

+0

火鸟2.5.2不是最近的版本,我建议你升级到至少2.5.6。但是,您的问题也可能是由于并发事务的锁定以及您使用“WAIT”事务造成的。请使用无等待事务,或者使用超时等待事务。 –

+0

编辑:现在它的运行2.5.5,我会尝试指定超时:DeadlockTimeout到10 –

回答

0

一切都是由后台运行的许多脚本之一(来自cron)在没有承诺几个小时的情况下进行公开交易而引起的。 它可以再回来。