我在 SQL Server 2008 上使用 SQL Server Broker 进行具有 SignalR v2.1.2 的横向扩展。最近发现我们每天在数据库日志中产生 50k+ 错误。经过一番研究,从 12 月开始有 3 个孤立的 Service Broker 队列。错误示例:
2016-02-27 23:58:01.79 spid30s 激活的 proc '[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 显然被删除了。为此,数据库将每 5 秒产生一次错误(相当于每天 50k,有 3 个队列)。每个队列都包含一条消息。
问题:
什么会导致这种情况?
是否可以实施其他 SignalR 设置以确保清理这些设置?
这是 SQL Server 服务代理中的错误吗?
是否有描述 SignalR 关于队列及其到期的预期行为的文档?
感谢您的时间。