将消息从多个服务器发送到一个Service Broker队列

时间:2011-09-21 18:41:52

标签: c# sql-server-2008-r2 service-broker

我有几个SQL服务器,数据库支持两个不同的应用程序。我需要捕获来自每个数据库的类似数据的更改,但是按顺序处理它。 Service Broker符合要求,我只有几个实施问题。

我已经创建了一个“第三”数据库来扩展这两个应用程序。在这个数据库上,我启用了服务代理,创建了消息模式,契约,服务和队列。

如果我想从//mysite.com/extensions/messageExtensionsQueue EXTENSIONSERVER.Database发送LEGACYSERVER.Database这类消息,是否需要运行SQL语句来创建这些消息(架构,合同,消息等)在每个数据库中我想与这个队列通信?看来,至少,我需要在每个数据库中使用消息模式来强制完整性。

假设我需要(这似乎只是有意义的话)我应该将每个服务器上的服务,队列等命名为相同,还是会导致问题?例如,我应该在EXTENSIONSERVER //extensionserver/extensions/message//legacyserver/extensions/message之类的名称上为服务命名吗?我是否甚至需要在LEGACYSERVER上创建服务和队列,或者这样的路由会照顾它吗?

CREATE ROUTE 
WITH 
  SERVICE_NAME = '//extensionserver/extensions/message',
  ADDRESS = 'extensionserver:1433'

1 个答案:

答案 0 :(得分:0)

实际上这实际上是一个很好的设置。我最终主要关注this tutorial

它没有提到的一个关键点是外部数据库实例的路由需要在MSDB数据库中。