Снижение производительности фильтрации портов / оркестровки BizTalk - PullRequest
1 голос
/ 15 марта 2009

Пожалуйста, рассмотрите следующий сценарий в BizTalk 2006:

Полученное сообщение следует направить на оркестровку или порт отправки в соответствии со следующими ограничениями

(Message.Type = "SomeType" AND Message.Sender = "SomeSender")
OR
(Message.Type = "SomeOtherType" AND Message.Sender = "SomeOtherSender" AND Message.IsSigned = true)
OR
(Message.Sender = "AnotherSender" AND Message.IsSigned = true)
etc...

Один из способов сделать это - применить фильтры к формам получения оркестровки или портам отправки.

С другой стороны, я могу добавить поле данных маршрутизации в контекст сообщения в пользовательском компоненте конвейера приема на основе полей сообщения, а затем применить к фильтру только одно ограничение:

Message.Route = "Route A"

Какая из этих альтернатив является менее дорогостоящим решением (более низкая задержка)?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 16 марта 2009

Между двумя вариантами я обычно выбираю фильтр оркестровки. Реализация подписок довольно быстрая, поэтому наличие нескольких сегментов для фильтрации не требует больших затрат.

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

На мой взгляд, есть один минус в фильтрах оркестровки (но - из вашего вопроса не обязательно, что вы улучшите его), и это тот факт, что правило компилируется (в отличие от фильтров порта отправки например)

Если вам нужно, чтобы это было более динамичным, и вы можете написать свой конвейерный компонент, чтобы он был настраиваемым, что принесло бы вам некоторую пользу.

0 голосов
/ 23 апреля 2009

Если у вас есть класс отправителей (как кажется, у вас есть), вы могли бы также рассмотреть реализацию связи с партией / ролью, которая даст вам дополнительную гибкость.

0 голосов
/ 15 марта 2009

Главное, что повлияет на вашу задержку, - это количество точек сохранения (сохранение состояния в базе данных).

Если альтернатива 2 (продвижение «маршрута» в конвейере) позволяет полностью исключить оркестровку (или она вам нужна для чего-то еще?) И позволяет вам иметь чистое решение для обмена сообщениями (порт-порт), то ' это будет быстрее, чем при наличии оркестровки там.

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