Текущее время: Сб, июн 21 2025, 15:54

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 09:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Добрый день.
В обшем, ситуация следующая. Запустил в фоне "тяжелую" программу, которая читает с сервера большой DBF и потом парсит. Работает уже 2 дня.
В тр.SMX показывает, что задание выполняется (активно). В SM50 тоже "циферки бегают", только подозрительно, что показатели по БД и памяти не меняются (но в целом такое возможно). Файл большой, но не настолько, чтобы его парсить 2 дня. Есть подозрение, что программа каким-то образом зависла. С кодом по идее всё ок, работало в диалоге на частичных выборках.
Вопрос - как проверить, что там система в рамках фонового процесса реально делает??


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 11:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Натравить SAT\SE30 на работающий процесс. По содержимому трассы можно понять, что там происходит

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 11:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Посмотреть процесс в отладке, зайдя через sm50

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 12:35 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Только сегодня изучал доку по аналогичной теме

http://scn.sap.com/community/abap/testing-and-troubleshooting/blog/2009/12/11/abap-runtime-analysis-se30--how-to-analyze-abap-program-flow

Блок 3, "How to trace a long running batch job?"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 13:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Всем спасибо, жаль нельзя отметить как правильные все три ответа :pivo:
Отладка фонового задания это вообще нечто, сразу ясно сколько еще будет работать ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 14:41 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
Ну а за 2 дня не было попытки в диалоге все проверить на том же объеме? хотя бы в песочнице?
Третий уже пошел ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 14:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
С трудом верится в существование такого файла DBF, который мог бы парситься 2 дня. Явно проблемы с алгоритмом.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 14:57 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
Хочется все же вслух сказать без чего бы я не полез в фон даже для простенькой программки :

1. лог работы программы хоть SAP-лог хоть Z-лог
2. распарсенную строчку таблицы писать в буфферную таблицу БД с коммитом (наличие коммита можно также регулировать таблицей с 1 настроечной строкой - ) и тогда проверяя её будет видно на какой строке все повисло ... Да и данные не пропадут если что-то рухнет, а бд выживет.
Так я знаю кто когда и что.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 08 2016, 22:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Crystal_Ra написал(а):
Хочется все же вслух сказать без чего бы я не полез в фон даже для простенькой программки :

1. лог работы программы хоть SAP-лог хоть Z-лог

Достаточно в спул писать с помощью write или в журнал задания с помощью message s... :D

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Чт, июн 09 2016, 15:57 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
+100500
Автор , все же интересно чем дело закончилось?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Пт, июн 10 2016, 13:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Программа удачно завершилась без ошибок, только в БД по факту записей не оказалось :D
Хотя там везде проверки стоят, в т.ч. на COMMIT.
Забил я на этот фоновый режим, проще десять раз онлайн запустить с частичной выборкой.

Crystal_Ra написал(а):
Ну а за 2 дня не было попытки в диалоге все проверить на том же объеме?

Нет. Зачем в онлайн, если такие задачи в фоне должны делаться. В диалоге все работает, DBF полностью считывется, только для парсинга частичные данные подаются.

Parazit написал:
С трудом верится в существование такого файла DBF, который мог бы парситься 2 дня. Явно проблемы с алгоритмом.

БД адресов ФИАС - 1.7 Гб, такой файл у меня напрямую через GUI даже не загружается, пишет мало ресурсов. С алгоритмом всё ОК, даже оптимизированый алгоритм чтения DBF на стороне сервака пришлось писать. Не говоря про сам парсинг содержимого. Думаю, дело в слабом серваке в системе разработки.

Crystal_Ra написал(а):
Хочется все же вслух сказать без чего бы я не полез в фон даже для простенькой программки :

Не считаю эти усложнения целесоообразными в данном конкретном случае, IMHO. Мне более чем достаточно оказалось отладки. И даже она(!) по факту не помогла в итоге ))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Вт, июн 14 2016, 14:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
troy написал(а):
Parazit написал:
С трудом верится в существование такого файла DBF, который мог бы парситься 2 дня. Явно проблемы с алгоритмом.

БД адресов ФИАС - 1.7 Гб, такой файл у меня напрямую через GUI даже не загружается, пишет мало ресурсов. С алгоритмом всё ОК, даже оптимизированый алгоритм чтения DBF на стороне сервака пришлось писать. Не говоря про сам парсинг содержимого. Думаю, дело в слабом серваке в системе разработки.

Решил проверить, так ли всё плохо. Скачал отсюда http://fias.nalog.ru/Updates.aspx базу fias_dbf.rar за 09.06.2016 (размер 2 578 288 192 байт). Попробовал загрузить самый большой файл ADDROBJ.DBF (1.7 Гб). Конечно для чтения через SAP GUI такой размер проблематичен, поэтому грузил с сервера приложений.
Результат загрузки:
Цитата:
Header_Length 1.185
Record_Length 605
Records Count 2.876.269
Time Begin 01:39:47
Time End 04:35:22
Time 02:55:35

Т.е. в среднем примерно 1 час на 1 млн. записей. Работает одинаково в диалоге и в фоне. Затраты времени парсинг/запись БД примерно 50/50. Думаю, парсинг можно ещё подкрутить.
Всё крутилось на одном бюджетном (куплен в 2011 г. за 20 т.р.) ноутбуке Lenovo Ideapad V560 - Intel Core i5, M480, 2.67GHz-2.67GHz, 8 GB (под виртуалку SAP 4 GB), Windows 7 Home 64. Если уж сервак слабее, то зачем нужен такой?! :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 15 2016, 10:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Черт его знает, почему так медленно работало. Для интереса проверил сейчас скорость чтения DBF во внутреннюю таблицу (без записи в БД). В диалоге 8-10 мин, в фоне чууть медленнее.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 15 2016, 21:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
troy написал(а):
Черт его знает, почему так медленно работало. Для интереса проверил сейчас скорость чтения DBF во внутреннюю таблицу (без записи в БД). В диалоге 8-10 мин, в фоне чууть медленнее.

Действительно, подшаманил ещё, чтение DBF и парсинг стали занимать 6 минут.
Соответственно вместе с записью в БД:
Цитата:
Header_Length 1.185
Record_Length 605
Records Count 2.876.269
Time Begin 15:51:17
Time End 17:24:44
Time 01:33:27

Теперь основное время занимает запись в БД, результат 1.5 часа на ~3 млн. записей более-менее терпимый для SAP.
Хотя я скорость ~550 зап./сек. считаю просто черепашьей, хотя бы 10тыс./сек минимум. Ну, возможно, дело уже в моём ноутбуке. Хотя даже Foxpro на стареньком Pentium 233MHz и то кажется быстрее работал. :)

Один момент - я чтение/запись делаю пачками по 20 тыс. записей, после каждой пачки Commit. Если делать Commit после каждой записи, то работать будет заметно медленнее.
Если пачки делать большими, например, по 1 млн. записей (или вообще всю таблицу целиком), то СУБД будет создавать большую область Rollback, возможно будет её расширять на диске, а после commit копировать данные из неё в оригинальную таблицу и чистить область Rollback. Это тоже может отнимать больше времени или вообще не записать данные, т.к. не хватит пространства под расширение Rollback.
Может у вас что-то подобное случилось, как часто делаете Commit?

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверить фоновый процесс
СообщениеДобавлено: Ср, июн 15 2016, 21:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Parazit написал:
Может у вас что-то подобное случилось, как часто делаете Commit?

Этот момент я как-то оставил без внимания, сохраняется целиком. Спасибо, попробую и тут немного подкрутить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB