2009-06-19 105 views
2

我們有關於SQL查詢通知服務的這個奇怪的問題。 我們有一個使用QN服務運行的主Web應用程序,因此當監視數據發生變化時,Web中的緩存項會從SQL獲取通知。它運行良好。 奇怪的是當其他支持Web服務嘗試註冊到SQL 2005 SP2的QN訂閱併發生此錯誤查詢通知錯誤

「系統異常:SqlDependency.Start已被調用服務器命令正在執行不止一次,但沒有匹配的服務器/用戶/數據庫Start()調用當前命令「

只有在SQLDependency中針對特定背景數據塊的SQL查詢時纔會出現此錯誤。另一個背景數據庫工作得很好。

對於QN /服務代理問題找不到太多的資源。希望任何有類似經驗的人都能分享他們的知識

+0

此問題已得到解決,原因是我們在全局代碼中的一個錯誤,它沒有在SQL中執行SQLDepenedncy.start()所有實例。但是,如果沒有啓動SQLDependency,錯誤應該是'當使用SqlDependency而沒有提供選項值時,必須針對每個正在執行的服務器調用SqlDependency.Start()。所以我仍然想知道爲什麼SQL會產生這個奇怪的錯誤。 – RocketsLee 2009-06-19 21:04:47

回答

1

這意味着Start()方法已經被調用這個數據庫。 啓動方法有限制,您可以在底部看到here

1

這不是關於這一主題的直接回答,但QN/SSB資源的問題,我有我的網站上幾篇文章:

我是SQ的前開發人員L服務器團隊,並且我參與了Service Broker,並且或多或少地與其查詢通知和SqlDependency,Event Notifications,dbMail等內部使用有關。

+0

感謝您的信息,我們知道SQL的QN訂閱成本資源,您能否告訴我們企業級SQL 2005服務器有多少QN訂閱太多?我們在我們的應用中實施QN,測試OK但在生產服務器中存在性能問題。上次我查了一下,他們在SQL中大約有3000個QN訂閱。我想知道這是一個問題或不是。謝謝! – RocketsLee 2009-07-15 14:24:21