1

非常..愚蠢的问题。

从 c# 代码调用 SQLAnywhere12。

  • 对可用数据库进行数据库调用并正确应答。
  • 如果数据库在最初工作后关闭(例如网络),新连接就会挂起。

我在调用堆栈上看到的最后一件事是:

  • Intellitrace.OpenConnection
  • SAConnection.Open
  • SAConnectionPoolManager.AllocateConnection
  • ->监视器。输入

Monitor.Enter 似乎永远在等待。

似乎没有异常被解雇。

所以我的想法是查看连接状态,只有在连接打开时才触发命令(即使在那里感觉很糟糕 - 在询问状态后可以直接断开连接)

如果我查看数据库的连接对象( iAnywhere.Data.SQLAnywhere ),则有一个可用的 ConnectionState。此 ConnectionState 显示:“打开”。

如果没有与数据库的连接可用,我希望“损坏”或“关闭”。

我如何告诉 SQLAnywhere 更新连接状态?

或者是否有更好的可能性得到一个例外?

4

1 回答 1

0

问题被“解决”了。

Telerik OpenAccess 用作 ORM。它有一个自己的连接池。

禁用 Telerik 连接池和启用 ADo.Net 连接池有帮助。

于 2013-03-22T10:56:51.320 回答