2015-07-10 99 views
3

根據Remus Resanu的文章this,我已經實施了SQL Server Service Broker並進行了錯誤處理。激活腳本掛起並且無法關閉

當我運行進程並激活腳本啓動但從未停止處理。根據SQL Server日誌文件,它看起來像我的錯誤處理中有一個錯字,現在它陷入了無限循環。

我試圖殺死使用kill <pid>的過程,但我收到消息Only user processes can be killed。我也嘗試重新啓動服務器,但激活腳本將再次啓動。

我該如何殺死失控的激活過程?

回答

3

我無法通過google/bing搜索找到解決方案。我最終記得我們通過SQL命令啓用了服務代理,所以我試圖禁用它,而且似乎已經工作:

ALTER DATABASE dbname SET DISABLE_BROKER; 
+0

您可能需要附加「with rollback immediate」來關閉相關事務 – user244795

1

它看起來像未公開的功能。如果激活的過程不發出END CONVERSATION,它會一直在無限循環中重新啓動。因此,要停止它,您需要使其成功運行任何對話框的END CONVERSATION。如果由於檢測到毒害信息而使隊列被禁用,則需要放棄該隊列以停止激活處理 - 無需重置代理。我沒有找到解決這個問題的方法,所以我玩了一下,希望這給你一個提示。