Посредник SQL Server SignalR - ошибки очереди потерянного компонента Service Broker

Я использую SQL Server Broker на SQL Server 2008 для масштабирования с SignalR v2.1.2. Недавно было обнаружено, что мы генерируем 50 000+ ошибок в день в наших журналах БД. После некоторых исследований в декабре появилось 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'.'

Эти очереди были созданы в декабре и по какой-то причине НЕ были удалены. Соответствующие SP, очевидно, были отброшены, как и ожидалось. Для этого БД будет выдавать ошибку каждые 5 секунд (приравнивается к 50 тыс. В день с 3 очередями). Каждая очередь содержит сообщение.

Вопросы:

Что может вызвать это?

Существуют ли дополнительные параметры SignalR, которые могут быть реализованы для обеспечения их очистки?

Это ошибка в SQL Server Service Broker?

Есть ли документ, который описывает ожидаемое поведение SignalR в отношении очередей и их срока действия?

Спасибо за ваше время.

1 ответ

Это остатки от SqlDependency, Реализация SqlDependency.Start() заключается в создании своевременной услуги, очереди и активированной процедуры (см. справочный источник). Это имеет некоторые проблемы, и даже простой сеанс отладки Visual Studio может оставить незапланированные очереди / активированные процедуры.

Вы можете очистить эти оставшиеся службы / очереди / процедуры, как они происходят, или вы можете использовать более низкий уровень SqlNotificationRequest Классифицируйте и управляйте развертыванием службы / очереди самостоятельно. Выбрать свой яд.

Другие вопросы по тегам