Как изменить имя службы назначения для очереди / службы - PullRequest
0 голосов
/ 23 августа 2010

У меня есть очередь SQL Server 2005 Service Broker "ProductChangeMessages" и служба Service Broker "ProductChangeNotifications". Пара является поддержкой SqlDependency, я пытаюсь заставить работать, но OnChanged зависимости не срабатывает. Когда отслеживаемая таблица изменяет подписку (видимую по результатам select * from sys.dm_qn_subscriptions), она удаляется.

В очереди есть сообщения, обозначенные SELECT * FROM sys.transmission_queue, которые имеют имя очереди как to_service_name, а в transmission_status они имеют

Не удалось найти имя целевой службы. Убедитесь, что имя службы указано правильно и / или предоставлена ​​информация о маршруте.

Похоже, что все, что генерирует сообщение, пытается использовать имя очереди, а не имя службы в качестве to_service_name.

Как я могу изменить это, чтобы оно использовало правильное имя службы?

1 Ответ

1 голос
/ 23 августа 2010

Вы не можете. Для начала вам нужно подписаться на правильное имя сервиса из вашей инфраструктуры зависимостей.

Чтобы очистить существующие сообщения, вы можете использовать опцию big nuke: alter database <dbname> set new_broker with rollback immediate;, которая уничтожит все существующие диалоги / сообщения, но оставит на месте все службы / очереди. Мелкозернистая опция состоит в том, чтобы завершать плохие диалоги один за другим с помощью end dialog <handle> with cleanup.

...