Синхронный ответ на запрос между двумя оркестрами Biztalk на разных серверах - PullRequest
1 голос
/ 12 ноября 2010

У меня есть оркестровка, которая предоставляет веб-службу, она проверяет источник полученного сообщения, выполняет некоторую логику ветвления, основанную на этом, и вызывает одну из набора оркестровок «службы» (которая находится в другом приложении). Эти сервисные оркестровки выполняют некоторое обновление моего сообщения, а затем отправляют его обратно в оркестровку маршрутизации после завершения. Затем приложение маршрутизации отправляет соответствующий ответ веб-службы. то есть весь процесс должен быть синхронным.

Мое намерение состояло в том, чтобы иметь прямую привязку порта отправки / получения в моей «маршрутизации» и связанный порт приема / отправки в «обслуживании» для достижения блокировки, но у меня возникают проблемы с выполнением этой работы.

Я пытался использовать корреляции и выражения фильтра, но я постоянно вижу «ошибку нескольких подписчиков», когда оркестровка службы пытается отправить свой ответ.

Я гарантировал, что никакие другие оркестровки / порты не используют мою Схему (до момента создания совершенно новой схемы, чтобы быть уверенным).

Слегка оторвав мне волосы, кажется, что-то, что должно быть относительно простым делом.

(p.s Я склоняюсь к тому, чтобы сервисные оркестровки выставляли веб-сервис и вызывали его, но кажется, что для чего-то, что всегда будет находиться на одной и той же машине, еще далеко).

1 Ответ

1 голос
/ 12 ноября 2010

Обычный способ гарантировать, что biztalk считает сообщения «другими», чтобы такого рода проблемы не возникали, - это использовать свойство только для контекста, которому устанавливаются разные значения до и после, а затем использовать корреляции и отфильтруйте выражение, чтобы убедиться, что сообщения соответствуют только конкретному экземпляру сообщения, поступающему из определенного места за один раз.

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

...