2013-01-22 51 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連接池。