Я собираюсь создать сервисный брокер для подключения нескольких экземпляров, может быть, я покажу это на картинке
Брокер службы - подключение экземпляра
Экземпляр A является целевым, экземпляры от B до I являются инициаторами, все элементы находятся на разных серверах.
Сначала пришла мысль сделать на целевом сервере (экземпляр A) отдельную очередь для каждого экземпляра, поскольку каждый экземпляр имеет свою очередь, и в случае возникновения проблем я всегда могу отключить эту проблемную очередь, в то время как оставшиеся очереди могут продолжать функция.
Здесь возникают мои вопросы:
- Это хорошая идея или я должен использовать одну очередь?
Если идея со многими очередями в порядке, теперь у меня есть другая проблема. Я использую одну и ту же процедуру для всех очередей для извлечения данных из очереди, но для извлечения данных из очереди мне нужно указать имя очереди, которая вызвала процедуру:
WAITFOR
( RECEIVE TOP(1)
@RecvReqDlgHandle = conversation_handle,
@RecvReqMsgTemp = message_body,
@RecvReqMsgName = message_type_name,
@ServiceName = service_name
FROM **'queue_name'**
Итак, следующий вопрос:
- Можно ли получить имя очереди, которая вызывает процедуру?