Biztalk Отправить группу портов и фильтрацию

Итак, модель, которая мне нужна для моего решения, выглядит следующим образом:

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

Это выглядит так:

http://i40.tinypic.com/2zq61qh.jpg

Однако если вы назначите "Temp Out" для группы портов отправки, сообщение будет отправлено на все порты в группе, независимо от фильтров, установленных на каждом порту. Насколько я понимаю, это ожидаемое поведение (читайте здесь).

Поэтому я изучил другие варианты, такие как использование Content Based Routing (пример CBR), как в SDK. Вы можете посмотреть это здесь.

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

В конце концов, для меня не имеет значения, использую ли я оркестровку или нет. Однако мне нужно решение, в котором я могу передать сообщение нескольким портам отправки, и у меня может быть только один, на самом деле использовать сообщение и отправить. Это необходимо для того, чтобы я мог легко редактировать и добавлять порты без необходимости вносить какие-либо изменения или решения, связанные с жестким кодом, в оркестровку.

2 ответа

Решение

Я обнаружил, что пример модели CBR действительно работает. Проблемой с маршрутизацией были подписки. Если бы я должен был подписать порт отправки на порт запроса-ответа, я должен был установить фильтр BTS.SPName (имя порта отправки) вместо фильтра BTS.ReceivePort. При этом сообщение было правильно отфильтровано. Ваш ответ тоже бы сработал, но он требует использования оркестровки, которой я пытался избежать.

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

Другие вопросы по тегам