Корреляция в BizTalk - PullRequest
       2

Корреляция в BizTalk

2 голосов
/ 20 октября 2011

В моем проекте 2 оркестровки и 2 схемы (первая - для запроса, вторая - для ответа). Orchestration 1 имеет форму Receive (Activating = true). Он получает запрос и затем направляет его на Orchestration 2. Последний создает запрос к веб-сервису, который отвечает ответом, ждет 2 минуты и затем отправляет новый запрос в мой сервис BizTalk. Оба проекта используют одни и те же схемы, схемы Request и Response.

Orchestration 2 использует набор корреляций, который инициализируется в форме Send, которая отправляет запрос в веб-службу. Кроме того, Orchestration 2 имеет форму Receive, ожидающую сообщения с ранее установленной корреляцией в форме Send.

Вот схема последовательности: enter image description here

А есть Orchestration 2: enter image description here

Для фигур

Send_1 и Receive_2 установлены свойства корреляции.

Проблема заключается в том, что когда веб-служба отправляет запрос 2 (см. Диаграмму выше) в мою службу biztalk, он выдает ошибку, сообщающую «Сообщение обнаружило несколько подписок ответа на запрос. Сообщение может быть перенаправлено только на один ответ на запрос подписка. " Как это может быть, если я установил соотношение? Я ожидал, что request2 будет перенаправлен на Orchestration 2, потому что у него есть получатель с корреляцией.

1 Ответ

3 голосов
/ 20 октября 2011

Сообщение об ошибке верное.

Когда запрос отправляется из WebService, он направляется в форму получения активации Orchestration2.

Но поскольку корреляция действует, это создает дополнительную подписку, поэтому ожидается, что запрос также будет перенаправлен в третью форму получения в Orchestration2.

Если вы не можете различить схемы запроса, вы должны использовать дополнительное условие для активации Orchestration2. Например, вы можете отфильтровать запрос, поступающий из Orchestration1, с помощью дополнительных фильтров на основе свойств контекста.

Вы увидите, что один запрос поступает от адаптера WCF или SOAP, а первый - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...