代码之家  ›  专栏  ›  技术社区  ›  Greg B

如何更改队列/服务的目标服务名称

  •  0
  • Greg B  · 技术社区  · 15 年前

    我有一个SQL Server 2005 Service Broker队列“ProductChangeMessages”和一个Service Broker服务“ProductChangeNotifications”。这对是对 SqlDependency 我正在努力工作,但是依赖关系的改变并没有被激发。当被监视的表更改订阅时(通过 select * from sys.dm_qn_subscriptions 被删除。

    队列中有消息 SELECT * FROM sys.transmission_queue 以队列名称作为 to_service_name 而在 transmission_status 他们有

    找不到目标服务名称。确保正确指定了服务名和/或提供了路由信息。

    因此,似乎生成消息的任何对象都试图使用队列名称而不是服务名称作为 ToService名称 .

    如何更改此项,使其使用正确的服务名称?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Remus Rusanu    15 年前

    你不能。首先,您需要从依赖性基础结构中订阅正确的服务名称。

    要清除现有消息,可以使用“大核弹”选项: alter database <dbname> set new_broker with rollback immediate; 它将清除所有现有的对话框/消息,但将保留所有服务/队列。细粒度选项是通过 end dialog <handle> with cleanup .

    推荐文章