Обработка ошибок в BizTalk 2016 для ошибок содержимого - PullRequest
0 голосов
/ 05 июня 2018

Мы разрабатываем интерфейс между двумя системами, предоставляя набор интерфейсов REST.

На стороне потребителя может случиться так, что вызов API из оркестрации приложения-потребителя приведет к ошибке содержимого (например, словарьзначение не определено на стороне потребителя).Поскольку потребитель не раскрывает все API словаря, мы должны передать такую ​​ситуацию команде ops, которая может включить недостающее значение словаря и повторно вызвать сообщение.

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

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

1 Ответ

0 голосов
/ 05 июня 2018

Во всем этом процессе все зависит от того, как вы разрабатываете решение.У вас есть несколько вариантов:

  1. При эскалации ошибки в оперативную группу, предполагающую автоматическое выполнение из BizTalk, вы можете запустить новый экземпляр оркестрации с исходным сообщением, которое ожидает запрос на повторный запуск с отсутствующими данными, используя корреляциюЯ бы и тогда, как только запрос будет отправлен, он может объединить и обработать его.Этот подход сохранит долго работающий экземпляр в зависимости от того, сколько времени потребуется для получения ответа от команды ops.
  2. Другой вариант - сохранить сообщение перед его передачей в базу данных или куда-то еще, а затем извлечь его, используя некоторый идентификатор корреляции.на повторный запуск рабочего процесса.Это похоже на первый вариант, за исключением того, что в этом случае вы управляете сохранением и извлечением сообщения из пользовательского хранилища по сравнению с BizTalk, сохраняя его в спуле, требуется больше усилий разработчика, но если у вас слишком много таких экземпляров, вы можете захотеть сделать это
  3. Пусть оперативная команда снова отправит весь запрос, если это возможно, с отсутствующими данными.Таким образом, вам не нужно будет поддерживать состояние в BizTalk.

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

...