BizTalk - как подписаться на ответ портов двусторонней отправки, но получить доступ к данным из запроса

Мне нужно отправить что-то в веб-службу, затем мне нужно отправить что-то через MLLP с помощью адаптера HL7 MLLP, и сообщение должно содержать что-то, возвращенное службой, и что-то, что было отправлено в службу, и я хотел бы по возможности используйте чистое решение для обмена сообщениями, а не оркестровку.

Так что в основном у меня есть два порта отправки. Второй должен подписаться на ответ первого, что означает, что это сообщение будет первым ответом порта отправки.

Хитрость в том, что мне также нужны данные из первого сообщения с запросом на отправку портов. Возможно ли это каким-то образом?


person Jeremy    schedule 28.08.2019    source источник
comment
Почему вы не хотите использовать оркестровку? Этот сценарий звучит так, как будто вам следует использовать оркестровку. Кроме этого, см. social.msdn.microsoft.com/Forums/en-US/   -  person Dijkgraaf    schedule 29.08.2019
comment
@Dijkgraaf - мы обнаружили, что оркестровки настолько обременительны для реализации управления, что мы не видим в решении для чистых сообщений, не говоря уже о влиянии на производительность, которое не оказывает чистое сообщение.   -  person Jeremy    schedule 29.08.2019
comment
@Dijkgraaf - насколько я помню, при построении оркестровок даже есть некоторые подводные камни, такие как реализация определенного шаблона вокруг логического порта отправки, чтобы повторные попытки могли работать, когда оркестровка приостановлена.   -  person Jeremy    schedule 29.08.2019
comment
Оркестровка оказывает лишь небольшое влияние на производительность, если только она не очень сложная. Обычно оркестровка приостанавливается только после того, как количество повторных попыток исчерпано. В этом сценарии попытка обмена сообщениями кажется более обременительной, чем использование оркестровки. Единственный другой вариант - убедиться, что нужные вам значения сохраняются до тех пор, пока они вам не понадобятся, либо в сообщениях, либо в свойствах контекста.   -  person Dijkgraaf    schedule 30.08.2019


Ответы (1)


Правильный способ сделать это - использовать оркестровку.

Нет ничего плохого в использовании оркестровки, и оркестровки существуют именно для этой цели.

Если кто-то говорит вам, что оркестровки неправильные, или вы где-то это читали ... они ошибаются. Вот и все. Если у вас проблемы с использованием оркестровок ... прямо сказать, вы делаете это неправильно.

В оркестровке вы, вероятно, можете использовать карту для объединения содержимого в ответ службы. Это именно тот вариант использования, для которого он предназначен.

Вот запущенный шаблон приостановки / возобновления: BizTalk Server: приостановить и возобновить оркестровку при ошибке двустороннего порта

Вы не можете контролировать это в решении только для обмена сообщениями.

person Johns-305    schedule 30.08.2019