Компонент Service Broker - несколько очередей против одной очереди - PullRequest
0 голосов
/ 07 ноября 2018

Я собираюсь создать сервисный брокер для подключения нескольких экземпляров, может быть, я покажу это на картинке Брокер службы - подключение экземпляра

Экземпляр A является целевым, экземпляры от B до I являются инициаторами, все элементы находятся на разных серверах. Сначала пришла мысль сделать на целевом сервере (экземпляр A) отдельную очередь для каждого экземпляра, поскольку каждый экземпляр имеет свою очередь, и в случае возникновения проблем я всегда могу отключить эту проблемную очередь, в то время как оставшиеся очереди могут продолжать функция.

Здесь возникают мои вопросы:

  1. Это хорошая идея или я должен использовать одну очередь?

Если идея со многими очередями в порядке, теперь у меня есть другая проблема. Я использую одну и ту же процедуру для всех очередей для извлечения данных из очереди, но для извлечения данных из очереди мне нужно указать имя очереди, которая вызвала процедуру:

WAITFOR
    ( RECEIVE TOP(1)
        @RecvReqDlgHandle = conversation_handle,
        @RecvReqMsgTemp = message_body,
        @RecvReqMsgName = message_type_name,
        @ServiceName = service_name
      FROM **'queue_name'**

Итак, следующий вопрос:

  1. Можно ли получить имя очереди, которая вызывает процедуру?
...