2013-01-22 33 views
1

非常愚蠢的问题。错误的iAnywhere连接状态

调用SQLAnywhere12是从C#代码完成的。

  • 对可用数据库的数据库调用进行了正确的回答。
  • 如果数据库在初始工作后关闭(例如网络),则新连接会挂起。

最后的事情,我可以在调用堆栈看到的是:

  • Intellitrace.OpenConnection
  • SAConnection.Open
  • SAConnectionPoolManager.AllocateConnection
  • - > Monitor.Enter

Monitor.Enter似乎永远等待。

没有例外似乎被解雇。

所以我的想法是,看看连接状态,如果连接只开放触发命令(甚至有与它一个非常不好的预感 - 的连接可以直接询问后状态被打破)

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

如果没有与数据库的连接可用,我会预期“Broken”或“Closed”。

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

还是有更好的可能性得到一个excpetion?

回答

0

问题“解决了”。

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

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