2013-05-23 4 views
6

실행하는 데 오랜 시간이 걸리는 ABAP 프로그램이 있다고 가정합니다. 그래서 나는 현재 그 프로그램이 무엇을하고 있는지, 어떤 코드 라인이 실행 중인지, 프로그램이 그 정확한 순간에 어떤 테이블에 쓰는지를 확인하고자한다.실행중인 프로그램의 상태를 확인하는 방법

실행중인 프로그램을 확인하는 트랜잭션이 있다고 생각합니다. 내가 맞습니까? 내가 뭐라 구요?

답변

11

원하는 것은 프로세스 개요입니다.

트랜잭션 SM66에는 현재 시스템의 모든 활성 프로세스가 표시됩니다. 이는 특히 둘 이상의 응용 프로그램 서버가있는 경우에 유용합니다.

SM50에는 현재 로그온 한 현재 응용 프로그램 서버의 모든 프로세스가 표시됩니다. 사용 가능한 응용 프로그램 서버를 보려면 SM51로 이동하십시오.

프로세스 개요 (SM66)에서 프로세스를 클릭하고 "디버깅"버튼을 클릭하십시오.

마찬가지로 SM50에서 메뉴에서 Administration -> Program -> Debugging을 선택하여 프로그램을 디버깅 할 수 있습니다.

프로세스 개요에서 항목의 세부 정보를 통해 프로그램이 실행중인 프로세스를 식별 할 수 있습니다.

제한된 데이터 세트로 프로그램을 테스트 할 수있는 경우 런타임 분석 (트랜잭션 SE30 또는 최신 시스템의 SAT)을 통해 프로그램을 테스트 할 수 있습니다. 이렇게하면 처리 과정에서 병목 현상을 쉽게 식별 할 수 있습니다.

+0

프로그램이 DB 업데이트를 수행하는 경우 디버깅을주의해서 사용해야합니다. 디버거는 예기치 않은 시간에 COMMIT WORK를 수행하므로 프로그램이 잘 정의 된 작업 단위에 의존 할 경우 불일치가 발생할 수 있습니다. –

+0

새로운 디버거는 이와 관련하여 더 나아지기를 기대하며 예측할 수없는 커밋을해서는 안됩니다.하지만 항상주의를 기울여야합니다. 트랜잭션 SE30/SAT는 성능에 대해 염려하는 경우 매우 유용한 비 침입 트랜잭션입니다. – Esti

3

SM50 개요를 사용하여 ABAP 프로세스 상태를 다소 제한적으로 확인할 수 있습니다. 프로그램이 백그라운드 프로세스에서 실행 중이고 적절한 권한이있는 경우 트랜잭션 SM37에서 백그라운드 작업을 디버깅 할 수 있습니다.

2

특히 DB 액세스가 염려되는 경우 트랜잭션 ST05를 사용하여 SQL 추적을 시작할 수 있습니다. 추적을 표시하면 실행 된 SQL 문과 실행 시간, 반환 된 레코드 수 및 사용 된 인덱스와 같은 정보가 표시됩니다. 또한 소스에서 명령문이 호출 된 곳을 볼 수 있습니다.

ST05는 시스템 전체의 추적이지만 username/transaction/program/table을 사용하여 추적을 필터링하여 결과의 ​​범위를 좁힐 수 있습니다. 또한 한 번에 하나의 트레이스 만 시스템을 실행할 수 있으므로 완료하면 다음 사람이 사용할 수 있도록 반드시 꺼야합니다.

관련 문제