Компонент Service: та же служба в предложениях «От» и «Кому» в выражении BEGIN DIALOG - PullRequest
0 голосов
/ 04 января 2012

В моем проекте Service Broker мне нужно было выполнять асинхронные вызовы, и мне нужно было поработать в фоновом режиме (только внутри SQL Server, например, при обновлении таблиц).

Существуют определенные моменты, которые необходимо принять во внимание, исходя из требования:

  1. Это своего рода односторонняя передача данных.Просто поместите сообщение в очередь SB и забудьте.Подтверждение не требуется.
  2. В проекте задействована только одна база данных.Нет необходимости в нескольких базах данных.
  3. Сообщение будет помещено в очередь SB с помощью сохраненного процесса (этот SP будет вызываться приложением).

При соблюдении вышеуказанных пунктовПохоже, что требование не подходит для создания 2 разных сервисов SB, так как достаточно только одного сервиса.Я разработал сценарий с наличием только одной службы SB, и при создании диалогового диалога я назначил одно и то же имя службы предложениям «От» и «До».Программа отправляет данные в очередь SB, и активатор активирует связанную процедуру Store .. Она работает просто отлично.

BEGIN DIALOG CONVERSATION @RecordConversationHandle
FROM SERVICE **UpdateQueueStatus**
TO SERVICE '**UpdateQueueStatus**'
WITH ENCRYPTION = OFF;

Пожалуйста, помогите мне с любым предложением относительно предложенного выше дизайна ..?Будем весьма благодарны за любые предложения / проблемы или что-либо, что требует внимания для улучшения дизайна для повышения производительности и масштабируемости.

1 Ответ

0 голосов
/ 25 января 2012

Сервисный брокер предназначен для диалогов, а не для монологов. Не придумывайте что-то новое (существует множество веских причин, по которым они всегда являются диалогами)

Вы можете создать службу отправки (Service1), которая используется для отправки сообщений и получает сообщения «Завершить диалог» и завершает диалог. Другая ведьма (Service2) получает сообщения и выполняет с ними некоторую обработку + завершает диалог, когда работа завершена.

...