Брокер служб - обработчик диалога не нашел сообщений в журнале ошибок SQL Server

На эту тему открыто много тем, но ни в одной из них нет ответа на мою проблему, поэтому я собираюсь попробовать.

Система: Windows Server 2012 SQL Server 2012 Enterprise Edition.

Проблема: мы используем SQLDependency, чтобы включить использование уведомления о запросе в нашем приложении, что означает, что оно создает свою собственную службу, очередь и процедуру.

Вопрос 1. Глядя в хранимую процедуру, я вижу, что она получает верхний 0. Что значит делать верхний 0?

Теперь о реальной проблеме. Иногда журнал ошибок заполняется следующими сообщениями (до такой степени, что я не могу его открыть): Доставка уведомления о запросе не может отправить сообщение в диалоговом окне «X»... из-за следующей ошибки в сервис-брокере: "дескриптор диалога X не найден. Сообщения появляются с одним и тем же дескриптором_беседы или с тремя разными.

когда я запрашиваю этот разговор из sys.conversation_endpoints, я вижу его, и он помечен как is_system = 1 (STARTED_OUTBOUND).

Я добавил предупреждение об ошибке 9245, чтобы попытаться определить, почему это происходит, когда это происходит. В сообщении «В течение последнего временного интервала было подавлено X ошибок уведомлений о запросах» значение X огромно и превышает 10 000. я предполагаю, что число связано с повторными испытаниями, потому что у нас нет такого количества уведомлений.

Сначала я подумал, что это может быть связано с сообщением «DialogTimer», потому что я заметил, что когда я заканчиваю беседу этого конкретного сообщения, сообщения останавливаются, но в последнее время это не сработало, поэтому единственное, что я мог сделать, чтобы остановить это, это установить NEW_BROKER .

это происходит немедленно, когда я возвращаюсь к нашему пулу приложений, хотя я вижу в наших журналах, что он вызывает SQLDependency.Stop , я не вижу удаленных объектов (служба, очередь и процедура), и сообщения об ошибках начинают заполнять журнал ошибок.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация. Ценю твою помощь,


comment
Читать rusanu.com/2007/11/10/when- идет дождь   -  person Remus Rusanu    schedule 08.02.2014
comment
Прочтите эту статью пару раз. ни один из описанных сценариев не соответствует моему. я сделал пару тестов, и всякий раз, когда я перезапускаю пул приложений iis, он сразу же начинает отправлять тысячи этих сообщений в мой журнал ошибок каждые пару миллисекунд. установка NEW_BROKER сбрасывает его, но я хочу найти проблему, а не исправлять ее вот так. я хочу попытаться работать с предопределенными сервисом, очередью и sp вместо того, чтобы позволить sqldependency создавать их, но это немного повредит гибкости создания новых экземпляров без некоторой ручной работы.   -  person Doron    schedule 09.02.2014


Ответы (1)


Кажется, вам просто нужно включить флаг трассировки 4133, взгляните на этот пост:

https://dba.stackexchange.com/questions/33750/error-9245-severity-16-state-1-during-the-last-time-interval-xxx-query-n

person Victor Barajas    schedule 24.04.2016