2010-03-30 4 views
3

Мы загружаем большой плоский файл в BizTalk Server 2006 (оригинальная версия, а не R2) - около 125 МБ. Мы запускаем карту против нее, а затем берем каждую строку и вызываем хранимую процедуру.OutOfMemoryException Обработка большого файла

Мы получаем исключение OutOfMemoryException во время обработки оркестровки, перезапуск службы Windows, использует полную память 2 ГБ и снова сработает.

Сервер 32-разрядный и настроен на использование переключателя/3GB.

Также я выделил поток на 3 хоста - один для приема, другой для оркестровки и третий для отправки.

У кого-нибудь есть предложения по получению этого файла для обработки ошибки wihout?

Спасибо, Крип

ответ

2

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

3

Если это плоский файл, отправляемый через карту, вы преобразовываете его в XML правильно? Увеличение размера может быть огромным. XML может легко добавить коэффициент в 5-10 раз по плоскому файлу. Особенно, если вы используете дескриптивные или длинные имена тегов xml (что обычно было бы).

Что-то простое, что вы можете попробовать - переименовать узлы xml в более короткие имена, в зависимости от количества записей (звучит как много), это может существенно повлиять на ваш объем памяти.

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

+0

Очень интересно. Имеет смысл, что меньшие имена узлов XML означают меньший размер пакета. Спасибо за советы! – Krip