Отправка сообщений с нескольких серверов в одну очередь компонента Service Broker - PullRequest
1 голос
/ 21 сентября 2011

У меня есть пара SQL-серверов с базами данных, поддерживающими два разных приложения.Мне нужно фиксировать изменения в похожих данных из каждой базы данных, но обрабатывать их последовательно.Сервисный брокер отвечает всем требованиям, у меня просто пара вопросов по реализации.

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

Если я хочу отправлять сообщения этого типа //mysite.com/extensions/message на ExtensionsQueue на 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 голосов
/ 06 октября 2011

Это на самом деле оказалось довольно сложным делом. Я закончил в основном после этого урока .

Один ключевой момент, который он не упомянул, это то, что маршруты для внешних экземпляров базы данных должны быть в базе данных MSDB.

...