Как проверить статус запущенной программы

Я предполагаю, что у меня есть программа ABAP, которая требует много времени для выполнения. Итак, я хочу проверить, что программа делает в данный момент, какая строка кода выполняется или в какие таблицы программа пишет в данный момент.

Думаю, есть транзакция для проверки запущенных программ. Я прав ? Если я что это?


person Mtok    schedule 23.05.2013    source источник


Ответы (3)


Что вы хотите сделать, так это перейти к обзору процесса.

Транзакция SM66 показывает вам все активные процессы текущей системы. Это особенно полезно, если у вас более одного сервера приложений.

SM50 покажет вам все процессы текущего сервера приложений, на котором вы вошли в систему. Чтобы просмотреть доступные серверы приложений, перейдите на SM51.

В обзоре процесса (в SM66) вы можете щелкнуть процесс и нажать кнопку «Отладка».

Точно так же в SM50 вы можете выбрать Administration -> Program -> Debugging в меню для отладки программы.

Вы можете определить процесс, в котором выполняется ваша программа, по деталям элемента в обзоре процессов.

Еще одна вещь, которую вы можете захотеть сделать, если вы можете протестировать свою программу с ограниченным набором данных, - это запустить ее через анализ времени выполнения (транзакция SE30 или SAT в более новых системах). Это позволит вам легче выявлять узкие места в обработке.

person mydoghasworms    schedule 23.05.2013
comment
Отладку следует использовать с осторожностью, если программа выполняет обновления БД. Отладчик выполняет COMMIT WORK в непредсказуемое время, что может вызвать несогласованность, если программа полагается на четко определенные единицы работы. - person Alex D. Campbell; 23.05.2013
comment
Новый отладчик должен быть лучше в этом отношении и не должен делать непредсказуемых коммитов, однако всегда рекомендуется соблюдать осторожность. Транзакции SE30 / SAT - очень полезные неинвазивные транзакции, если вас беспокоит производительность. - person Esti; 24.05.2013

Вы можете проверить статус процесса ABAP в довольно ограниченном масштабе, используя SM50 обзор. Если программа работает в фоновом режиме (и у вас есть соответствующие разрешения), вы можете отладить фоновое задание из транзакции SM37.

person vwegert    schedule 23.05.2013

Если вас особенно беспокоит доступ к базе данных, вы можете использовать транзакцию ST05 для запуска трассировки SQL. Когда вы отображаете трассировку, она покажет вам выполненные операторы SQL и предоставит некоторую информацию о них, например, сколько времени это заняло, сколько записей было возвращено и какие индексы использовались. Это также позволяет вам увидеть, где был вызван оператор в источнике.

ST05 является общесистемной трассировкой, но вы можете отфильтровать трассировку по имени пользователя / транзакции / программе / таблице, чтобы сузить результаты. Также обратите внимание, что одновременно в системе может работать только одна трассировка, поэтому обязательно выключите ее, когда закончите, чтобы ее мог использовать следующий человек.

person Alex D. Campbell    schedule 23.05.2013