2013-05-23 2 views
6

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

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

ответ

11

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

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

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

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

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

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

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

+0

Отладка должна использоваться с осторожностью, если программа выполняет обновления БД. Отладчик выполняет COMMIT WORKs в непредсказуемое время, что может привести к несоответствиям, если программа опирается на четко определенные единицы работы. –

+0

Новый отладчик должен быть лучше в этом отношении и не должен делать непредсказуемые коммиты, однако осторожность всегда рекомендуется. Транзакция SE30/SAT - очень полезные неинвазивные транзакции, если вас беспокоит производительность. – Esti

3

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

2

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

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