我有一个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
。
如何更改此设置以使其使用正确的服务名称?
答案 0 :(得分:1)
你做不到。您需要从依赖关系基础结构中订阅正确的服务名称。
要清理现有消息,您可以使用大核选项:alter database <dbname> set new_broker with rollback immediate;
,它将清除每个现有的对话框/消息,但会保留所有服务/队列。细粒度选项是通过end dialog <handle> with cleanup
逐个终止坏对话框。