当出现死锁时 ibase_execute 就会挂起
设置:firebirdsql 2.1.3 win32,php 5.3(与xampp一起安装) 当我尝试更新在桌面应用程序或 IBexpert 中编辑的记录时,出现死锁,ibase_execute 只是挂起,不返回任何值,也不引发异常。 当没有死锁时,一切都会正常进行。 有什么想法如何抓住这个吗?
Setup: firebirdsql 2.1.3 win32, php 5.3 (installed with xampp)
When I try to update a record that's edited in a desktop app or IBexpert, and there is a deadlock, ibase_execute just hangs, does not return any value nor raises an exception.
When there's no deadlock, everything works fine.
Any ideas how to catch this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我发现了问题。
默认情况下,事务是 IBASE_WAIT,因此它会等待,直到不再编辑记录。
您必须使用 IBASE_NOWAIT 选项启动事务才能在死锁情况下立即得到响应。
I found the problem.
By default, the transactions are IBASE_WAIT, so it waits until the record is no longer edited.
You have to start a transaction with the IBASE_NOWAIT option to get an immediate response in a deadlock situation.