BizTalk 2010 Определите настройки Host Throttle для мест получения
Поскольку требуемые компоненты конвейера, похоже, испытывают трудности при попадании в базу данных с подробностями сообщений, я планирую использовать регулирование узла для ограничения количества файлов, которые BizTalk обрабатывает в месте получения. Я хочу иметь возможность указать, что количество сообщений X должно быть обработано в течение Y секунд (или любого другого возможного промежутка времени). Кто-нибудь знает, какие настройки дросселирования можно использовать для принудительного поведения?
Я знаю, как устанавливать значения, однако я не могу найти лучшую конфигурацию.
(примечание: одно из решений может также настроить конвейер, но оно содержит сторонние компоненты, которые нельзя настроить.)
2 ответа
Из того, как BizTalk Server реализует регулирование хоста, BizTalk рассматривает
- Количество используемой памяти (как для всей системы, так и для памяти хост-процесса).
- Количество обрабатываемых сообщений, доставляемых или обрабатываемых (порог для регулирования исходящего трафика).
- Количество используемых потоков. Размер базы данных, измеряемый количеством элементов в таблицах очередей для всех хостов и количеством элементов в таблицах спула и отслеживания.
- Количество одновременных подключений к базе данных.
- Скорость публикации сообщений (входящих) и доставки или обработки (исходящих).
Единственное, что ограничивает входящие, - это скорость публикации сообщений, но это возможно после того, как конвейер / порт обработал сообщение, поэтому в этом сценарии может быть бесполезно, но вам придется проверить это.
Возможно, вы захотите настроить этот процесс под своим собственным хостом, поэтому, если он достигает пороговых значений регулирования, он также не регулирует все остальное.
Если возможно, вы должны переместить компонент в конвейер порта отправки, поскольку регулирование портов отправки намного более управляемо. Один из способов - установить для порта отправки заказанную доставку, хотя это может вызвать отставание, особенно если вы получаете сообщение с приостановкой.
Я думаю, что ваш самый простой подход заключается в том, чтобы написать собственный адаптер. К сожалению, готовый File Adapter напрямую не поддерживает интервалы дросселирования / опроса, и я не думаю, что приведенные предложения не окажут непосредственного влияния на обработку пользовательского конвейера, если он напрямую попадет в БД через ADO.NET (но это не могло больно пробовать). Вы можете установить свойство BatchSize в настройках файлового адаптера, но даже в этом случае ничто не мешает отправлять этот пакетный размер так быстро, как это возможно, снова и снова.
Можно создать специальный адаптер для ожидания некоторого периода перед отправкой дополнительных файлов для обработки. Вы можете основать его на образце SDK File Adapter.