Проблема гидратации / регидратации BizTalk - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть пользовательский полученный конвейер, который разбивает большой файл на отдельный файл и отправляет их в окно сообщения, и оркестровка подписывается на эти сообщения и обрабатывает их.В моей оркестровке у меня есть несколько форм выражений, которые выполняют методы в .net dll.Я также добавил логирование на каждом шагу.В любой момент окно сообщения может быть заполнено сотнями сообщений.Я заметил, что некоторые сообщения выполняются несколько раз.Я дважды проверил, чтобы убедиться, что я не генерировал несколько одинаковых сообщений.Это заставляет меня поверить, что, возможно, это как-то связано с увлажнением.Из того, что я исследовал, когда оркестровка гидратирована, она сохранится в той форме, в которой она была, а также в состоянии dll.Когда он возобновится, он возобновит свою прежнюю форму, а не с самого начала.

Кто-нибудь видел эту проблему?Какие тесты / конфигурации я могу сделать, чтобы проверить / исправить эту проблему?!

Here is part of the orchestrations

Here is the .net method that each of the Expression shape calls

Большое спасибо!

Энджи

Ответы [ 3 ]

1 голос
/ 16 ноября 2011

Я думаю, вы путаете гидратацию с очками стойкости.Письма в сочетании с некоторой логикой try \ catch могут создать оркестровку для перезапуска с последней точки сохранения.Вы не опубликовали полную картину своих оркестровок, но я вижу там область.Есть ли у вас обработка исключений?

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

0 голосов
/ 22 ноября 2011

Я бы предложил в этом случае продвигать 2 новых пользовательских свойства на стадии конвейера для каждого нового генерируемого сообщения -

1) Общее количество сообщений 2) Номер текущего сообщения

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

0 голосов
/ 13 ноября 2011

Интересная проблема:)

Гидратация и регидратация происходят, когда оркестровка простаивает, ожидая чего-то.Следовательно, это не должно происходить во время обработки файла.

  • Просто чтобы убедиться, что это не проблема качества данных, убедитесь, что во входных файлах нет повторяющихся данных.
  • Вы можете использовать функции регулирования, чтобы гарантировать, что одновременно обрабатывается только один файл.Это приведет к удалению одного потенциального источника ошибок.
  • Другая вещь, которую вы можете сделать, это проверить вашу обработку ошибок, есть ли у вас какая-либо логика повторения при сбое первого вызова?Если Biztalk также делает попытку, это может объяснить дублирование.
...