Синхронный ответ запросов между двумя оркестрациями BizTalk на разных серверах
-
09-10-2019 - |
Вопрос
У меня есть оркестровка, которая обнажает веб-сервис, он проверяет источник полученного сообщения, выполняет некоторую логику разветвления на основе этого и вызывает один из наборов «сервисных» оркестрация (которые проживают в другом приложении). Эти сервисные оркестрации выполняют некоторое обновление в моем сообщении, затем отправьте его обратно в оркестрацию маршрутизации при завершении. Приложение маршрутизации затем отправляет соответствующий ответ веб-сервиса. Т.е. конец для конечного процесса все предназначено для синхронного.
Мое намерение состояло в том, чтобы иметь прямой порт отправки / получателя в мою «маршрутизацию» оркестографии и подключенным портом «Приема / отправки» в «Сервис» оркестрациях для достижения блокировки, но у меня проблемы с этим работают.
Я пытался использовать корреляции и выражения фильтра, но я постоянно вижу ошибку «несколько подписчиков», когда служба оркестрация пытается отправить свой ответ.
Я гарантировал, что никакие другие оркестрации / порты не используют мою схему (к точке создания совершенно нового, чтобы быть уверенным).
Разрывая мои волосы на это немного, похоже, что-то должно быть относительно простым для достижения.
(PS Я прилагаюсь к тому, что сервисные оркестрации подвергают веб-службу и призыв к этому, но кажется, что это похоже на что-то, что всегда будет находиться на одной машине).
Решение
Общий способ обеспечения того, чтобы сообщения рассматривались как «разные» by BizTalk, чтобы такие вопросы не произошли, - это использовать свойство только для контекста, которое устанавливается на разные значения до и после, а затем использует корреляции и выражение фильтрации Чтобы убедиться, что сообщения соответствуют только определенному экземпляру сообщения, исходящего из определенного местоположения за раз.
Таким образом, даже если типы сообщений одинаковы, подписки не будут иметь одинаковых предикатов.