У меня есть порт приема с двумя местами приема FILE, опрашивающими один и тот же сетевой ресурс. Единственная разница между местами приема состоит в том, что они используют другую маску файла. Оба они используют собственный конвейер с одним компонентом дизассемблера плоских файлов. У меня есть порт отправки, подписывающийся на порт приема. (это просто минимальная настройка, в которой я могу воспроизвести проблему).
При обработке группы файлов (размером до 1 МБ) иногда конвейер выдает ошибку. Это происходит только тогда, когда более одного файла копируется в общую папку получения файла и происходит нерегулярно. Ошибка обычно гласит:
Произошла ошибка при разборе входящего документа: «Неожиданные данные
найдено при поиске: '\ r \ n' Текущее определение, которое анализируется:
GIRMFile. Смещение потока, в котором произошла ошибка, составляет 491540.
номер строки, в которой произошла ошибка, - 2446. Столбец, в котором
произошла ошибка 199 ".
Изучение приостановленного сообщения по указанному номеру строки, последовательно 512 байт данных, отличается от входящего сообщения. Эти 512 байтов данных всегда соответствуют данным из одного из других входных файлов, потребляемых одновременно! Или в нескольких редких случаях неправильные 512 байт данных - это данные из файла, потребляемого в одно и то же время, но после того, как он был обработан конвейером (то есть приостановленный плоский файл имеет 512-байтовый фрагмент xml!). 512 байт никогда не находятся в согласованном месте в приостановленных сообщениях.
Думая, что базы данных BizTalk каким-то образом повреждены, я удалил их и перенастроил. Проблема вернулась после того, как несколько сотен файлов были успешно обработаны.
Это происходит только на нашем тестовом компьютере (VMWare vm), поэтому я подозреваю, что проблема с машиной в некотором роде. Но кажется странным, что машина не сообщает о других ошибках в других процессах.