簡體   English   中英

SignalR SQL Server代理-孤立的服務代理隊列錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM