Текущее время: Пт, авг 22 2025, 01:19

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Запуск инфопакета через BAPI_IPAK_START
СообщениеДобавлено: Пн, дек 01 2008, 14:48 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Коллеги.
Необходимо делать достаточно большой расчет в ФМ экстракции. То, что на тестировании работало хорошо, на продуктиве стало валиться в дамп из-за нехватки памяти из-за большого объема "боевых" данных.
Сделал код который бьет исходный пул данных на относительно небольшие части. Соответственно меняю инфопакет (BAPI_IPAK_CHANGE) и пытаюсь его запустить через BAPI_IPAK_START. Анализирую таблицу возврата с ошибками. Если есть ошибки - попытка повторного запуска с теми же параметрами.
Проблема в том, что не смотря на такую обработку таблицы возврата функции, получается ситуация, что некоторые инфопакеты стартуют несколько раз с одними и теми же параметрами. Возвращаемые ошибки при запуске: "Инфо-пакет Zххх запланирован или уже выполняется; дальнейш. запуск невозм." и "Задание BI_ххх (еще) не запущено". Если же повторный запуск не проводить, то большинство пакетов не стартует и данные загружаются не все.
Как по-другому запускать инфопакет и обрабатывать возврат? Может пытаться запустить всё, а потом мониторить, что по факту запустилось? Число запускаемых процессов гораздо больше, чем диалоговых процессов на сервере приложений.

_________________
Рисую потоки данных.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 02 2008, 13:56 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
В общем убрал распараллеливание. Запускаю инфопакет и жду пока статус станет не-желтым (модуль BAPI_ISREQUEST_GETSTATUS). Итого экстракция занимает всего один фоновый процесс и ведет на системе себя очень корректно.
Подглядел здесь http://www.sapnet.ru/viewtopic.php?t=1952

_________________
Рисую потоки данных.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 04 2008, 22:51 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Zharik написал(а):
В общем убрал распараллеливание. Запускаю инфопакет и жду пока статус станет не-желтым (модуль BAPI_ISREQUEST_GETSTATUS). Итого экстракция занимает всего один фоновый процесс и ведет на системе себя очень корректно.
Подглядел здесь http://www.sapnet.ru/viewtopic.php?t=1952

а если выставить галку в пакете - "фоновый процесс длится, пока даные не будут загружены в цель" (как-то так она называется). смысл такой что он не вернет управление запустившей программе, пока не загрузит все в цель. гы...пока писал подумал а если ошибки и запрос в желтом статусе будет болтаться:)))

_________________
а подпись...а подписи не будет :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 05 2008, 15:09 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Прикинул по последней проблеме. Начальная загрузка - до сотни пакетов. В один поток работают нормально, но, в общем получается ну очень медленно.
Сейчас в голове идея сделать константу на системе - число фоновых процессов, которые допустимо занимать и запускать именно столько. И мониторить последовательно их статусы, заменяя в списке позеленевший пакет новым.
Возможно проблемы бы не было, если б из исходной системы данные приходили в нужных разрезах. Но здесь достаточно сложный расчет на основании разрозненных данных из исходной системы в попытке получить нормальную картину истории и всё это делается в момент экстракции.
Ладно. Сорри за разглагольствывания :D

_________________
Рисую потоки данных.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запуск инфопакета через BAPI_IPAK_START
СообщениеДобавлено: Сб, дек 06 2008, 18:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
Zharik написал(а):
Коллеги.
Необходимо делать достаточно большой расчет в ФМ экстракции. То, что на тестировании работало хорошо, на продуктиве стало валиться в дамп из-за нехватки памяти из-за большого объема "боевых" данных.


Я чего-то не понял.
Экстрактор как сделан ? Данные разбиваются на пакеты или приходят одним большим "куском" ?

Иными словами в экстракторе есть что-то наподобие

Code:
    FETCH NEXT CURSOR S_CURSOR
               APPENDING CORRESPONDING FIELDS
               OF TABLE E_T_DATA
               PACKAGE SIZE S_S_IF-MAXSIZE.

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, дек 07 2008, 23:32 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Zharik написал(а):
Прикинул по последней проблеме. Начальная загрузка - до сотни пакетов. В один поток работают нормально, но, в общем получается ну очень медленно.
Сейчас в голове идея сделать константу на системе - число фоновых процессов, которые допустимо занимать и запускать именно столько. И мониторить последовательно их статусы, заменяя в списке позеленевший пакет новым.
Возможно проблемы бы не было, если б из исходной системы данные приходили в нужных разрезах. Но здесь достаточно сложный расчет на основании разрозненных данных из исходной системы в попытке получить нормальную картину истории и всё это делается в момент экстракции.
Ладно. Сорри за разглагольствывания :D

а почему не выполнить этот сложный расчет в исходной системе и не вернуть результат своим экстрактором. Или система неSAP?

_________________
а подпись...а подписи не будет :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 08 2008, 20:12 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
Попробуй результаты расчета сохранять в промежуточных таблицах с timestampом и затем грузить в BW. Если грамотно сделать даже дельта получиться.

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Вт, дек 09 2008, 18:56 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Исходная система - как раз САП.
В результате анализа исходных требований изменил порядок расчета аналитики, убрав лишние итерации, сделал кеширование перед большими расчетами (чтобы не выбирать аналитику дважды). Итого по скорости разогналось в 20 раз и теперь отрабатывает полностью за ночь. В общем, то, что доктор прописал.
В общем ещё раз убедился, что хотелки клиента, которые транслированы в некое подобие ТЗ надо творчески переосмысливать. Иначе система не сдвинется с места.

2 VitalkaFS варианты с дельтой по времени используются где только можно. Но когда на выходе экстракции бывает пару миллионов записей, то хочется избежать лишней операции обращения БД (записи в таблицу и извлечения данных, удаления результата предыдущего запроса) и сразу отдать данные в BW. Итого получается быстрее, но если всё корректно работает.

Так что проблема закрыта. Спасибо всем, кто принял участие в топике!

_________________
Рисую потоки данных.


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

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


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

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


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

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