Отключите/заблокируйте порт отправки WCF BizTalk во время большой громкости

#biztalk #biztalk-2016 #biztalk-wcf

Вопрос:

У меня есть некритичный/необязательный порт отправки WCF, который полезен во время обычных операций, но должен автоматически отключаться при определенной пропускной способности сообщений. Этот большой объем возникает, когда подключенные системы выполняют загрузку данных (100 000 мгс в час или более). Сообщения с большого объема времени не следует сохранять или обрабатывать, просто полностью отбрасывать. Порт отправки должен возобновить обработку/отправку сообщения, как только громкость упадет ниже порогового уровня. Приложение не использует оркестровки. Пока моя единственная идея-отслеживать пропускную способность с помощью пользовательского компонента конвейера и чего-то вроде redis, а затем либо удалить, либо отправить сообщение на основе этого. Это похоже на не очень хороший взлом.

Мой вопрос: Используя адаптер WCF (или что-то еще), есть ли простой способ либо удалить сообщение, либо отправить его в зависимости от текущей пропускной способности сообщений?

Ответ №1:

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

Примечание: Не устанавливайте опрос, пока сообщения найдены = True в этом сценарии.