[英]SignalR SQL Server Broker - Orphaned Service Broker Queue Errors
我正在使用SignalR v2.1.2在SQL Server 2008上使用SQL Server Broker進行橫向擴展。 最近發現,我們每天在數據庫日志中產生5萬多個錯誤。 經過一些研究,從12月開始有3個孤立的Service Broker隊列。 錯誤示例:
2016-02-27 23:58:01.79 spid30s已激活的進程'[dbo]。[SqlQueryNotificationStoredProcedure-2ffbddba-6ddc-4ad0-88b4-45a405e975e0]'在隊列'MY_SIGNALR_DB.dbo.SqlQueryNotificationService-2ffbddba-6ddc-4ad0-88b4上運行-45a405e975e0'輸出以下內容:'找不到存儲過程'dbo.SqlQueryNotificationStoredProcedure-2ffbddba-6ddc-4ad0-88b4-45a405e975e0'。
這些隊列是在12月創建的,由於某些原因沒有被刪除。 顯然,相應的SP下降了。 DB將為此每5秒產生一次錯誤(相當於每天3萬個隊列,每天50k)。 每個隊列都包含一條消息。
問題:
是什么原因造成的?
是否可以實施其他SignalR設置以確保將其清除?
這是SQL Server Service Broker中的錯誤嗎?
是否有文檔描述SignalR關於隊列及其到期的預期行為?
感謝您的時間。
這些是SqlDependency
遺留物。 SqlDependency.Start()
的實現是創建即時服務,隊列和激活過程(請參閱參考資料 )。 這有一些問題 ,甚至簡單的Visual Studio 調試會話也可能會留下擱淺的隊列/激活的過程。
您可以在發生這些剩余服務/隊列/過程時對其進行清理,或者可以選擇使用較低級別的SqlNotificationRequest
類,並SqlNotificationRequest
處理服務/隊列部署。 選擇你的毒葯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.