SQLExecDirect 在死锁时不返回
SQLExecDirect doesn't return when deadlocked
我有一个C 应用程序通过SQLEXECTIRECT调用存储过程。如果有僵局SQLEXECTECT在解决僵局之前不会返回。
。我在.NET世界中读过它可以检测到死锁并引发例外。C /ODBC在僵局中重新控制有什么办法?我怀疑答案是否定的,但我希望我还没有找到一些ODBC功能。
我能想到的唯一工作是启动另一个线程以运行它,并设置了暂停线程返回的时间。
,不,我无法解决僵局。该应用程序正在从我选择的客户的DBS运行查询或存储过程。我只是不希望在僵局的持续时间内无反应。
如果您的ODBC提供商支持异步执行,则可以以这种方式执行操作,ODBC 3.8 甚至支持较旧的3.0轮询的基于事件的通知模式。请注意,除非使用SQLServer的火星之类的东西,您的连接仍然会陷入僵局,它只会允许线程在等待答案时做其他事情。
相关文章:
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何在没有死锁和/或争用的情况下正确使用 std::mutex C++?
- 用C++中的std::condition_variable将线程置于死锁中会有风险吗
- 使用 std::async 时死锁,将来作为成员
- 如何调试读写器锁的死锁?
- 为什么在Visual Studio 2013上的std::this_thread::sleep_for上死锁
- localtime() 函数正在调用 ___lll_lock_wait_private(),这会使线程陷入死锁
- 如何重现 Boost 进程文档提示的死锁?
- 多线程Windows GUI应用程序中的死锁
- 为什么printf会导致与future.get的死锁,而cout则不会?
- C++中具有阻塞队列和障碍的死锁
- 死锁使用 std::mutex 来保护多个线程中的 cout
- 避免并发等待对象中的死锁
- 在VC++中从DLLMAIN内部调用D3D的CREATEDEVICE时,它会创建一个死锁(loaderlock?)。有没有办法克服这个问题?最终目标内
- 当用2个螺纹锁定时,将recursive_mutex死锁
- 程序在 C++11 中使用条件变量进入死锁
- 一个线程提升的死锁
- 单个生产者/多个消费者死锁
- SQLExecDirect 在死锁时不返回
- 死锁和/或在线程死机之前返回