SAPфорум.RU
https://sapboard.ru/forum/

Ошибка парсинга большого входящего сообщения
https://sapboard.ru/forum/viewtopic.php?f=70&t=89910
Страница 1 из 1

Автор:  Walking In The Air [ Вт, мар 03 2015, 12:33 ]
Заголовок сообщения:  Ошибка парсинга большого входящего сообщения

Добрый день, коллеги!
Может возникнут у вас какие нибудь предложения:
нам в PI (7.3) приходит относительно большое xml сообщение (больше гига). При парсинге возникает ошибка
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity

Очевидное предположение - файл где-то в пути обрезается. Но нужно это проверить/подтведить. Есть ли возможность как-нибудь залоггировать это входящее сообщение? Оно же ведь принимается в память, которая после ошибки чистится.

Все свои параметры и лимиты проверили несколько раз. Других ошибок нигде не возникает. Присоветуете что-нибудь?

Автор:  rabbit [ Вт, мар 03 2015, 13:31 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Ну залогируете вы его, а дальше что?
Чем вы его собрались открывать?

И если файл кривой, то вы получите ту же самую ошибку.

Автор:  rabbit [ Вт, мар 03 2015, 13:32 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Цитата:
файл где-то в пути обрезается.


У вас весь путь это система - источник -> канал -> мэппинг.

Проверьте в системе источнике настройки. Может она не дает отправлять такого объема сообщения.

Автор:  Walking In The Air [ Вт, мар 03 2015, 14:34 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

rabbit написал(а):
Ну залогируете вы его, а дальше что? Чем вы его собрались открывать?
Это уже проще: vi, od, hexdump etc. Или скинем на рабочую машину - там уже выбор больше.

rabbit написал(а):
Проверьте в системе источнике настройки. Может она не дает отправлять такого объема сообщения.
Как это часто бывает - доступа к источнику нет. Другая организация. Говорят, что у них всё хорошо и получают 200 код в ответ.
Поэтому нужно некое подтвержение, что вот получили уже обрезанный файл. Либо всё-таки поймём, что сообщение корректное и проблема у нас.

Автор:  rabbit [ Вт, мар 03 2015, 15:19 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Поставьте валидацию на уровне адаптера (Inbound Processing), если сообщение кривое приходит, то по идее они перестанут получать 200 ОК.
Или к настройкам в PI у вас тоже нет доступа? :)

Автор:  Chaser009 [ Вт, мар 03 2015, 15:23 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Попробуйте, прежде всего, размер памяти для java-сервера увеличить.

Автор:  Walking In The Air [ Вт, мар 03 2015, 16:15 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Chaser009 написал:
Попробуйте, прежде всего, размер памяти для java-сервера увеличить.

Стоит 10Гб, а сообщение в 1Гб. И по памяти сейчас ошибок не видно.

Автор:  rabbit [ Вт, мар 03 2015, 17:17 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

В процессе мэппинга оно занимает гораздо больше 1 Гб.

Вы можете проверить состояние памяти в процессе обработки этого сообщения?

Автор:  Walking In The Air [ Вт, мар 03 2015, 18:09 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

rabbit написал(а):
Поставьте валидацию на уровне адаптера (Inbound Processing), если сообщение кривое приходит, то по идее они перестанут получать 200 ОК.
Или к настройкам в PI у вас тоже нет доступа? :)

К нашему PI пока еще есть доступ :D
Попробовали, но до Inbound Processing оно не доходит. А 200 OK возвращается.

rabbit написал(а):
В процессе мэппинга оно занимает гораздо больше 1 Гб.
Вы можете проверить состояние памяти в процессе обработки этого сообщения?
Да, понятно, что оно увеличивается. Допустим даже больше, чем 10 раз. Но тогда был бы эксепшн по памяти - такие в самом начале уже ловили :lol:
Или имеется виду какой-то хитрый способ мониторинга?

Автор:  rabbit [ Вт, мар 03 2015, 18:19 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Цитата:
Попробовали, но до Inbound Processing оно не доходит. А 200 OK возвращается.


Тогда я ничего не понимаю. В этом случае оно и до мэппинга не доходит.
В канале всё нормально отрабатывает?

Я честно признаться не сталкивался с монитором таким больших сообщений.

Автор:  rabbit [ Вт, мар 03 2015, 18:21 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Как вариант прокиньте без изменений как есть это сообщение в файловую систему. Сценарий без мэппинга. И посмотрите потом его.

Автор:  Walking In The Air [ Вт, мар 03 2015, 18:36 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Да, до маппинга не доходит - какой-то парсинг видимо происходит еще в самом начале.

Вы имеете ввиду без IR?

Автор:  rabbit [ Вт, мар 03 2015, 18:48 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Да, именно так. Если получится.

Автор:  Walking In The Air [ Вт, мар 03 2015, 20:36 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

Спасибо, попробуем!

Автор:  chumpa [ Сб, мар 07 2015, 09:40 ]
Заголовок сообщения:  Re: Ошибка парсинга большого входящего сообщения

преобразовывать 1Гб файл в модуле или в меппинге можно только по частям, надо в канале-отправителе ставить признак отправки побайтно или построчно.
Стандартно в ICM ограниченое 100МБ, рекомендуется делать сообщения в районе 5-10 Мб для оптимальной производительности.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/