Jak zrobić trace na formatkach OAF czyli tzw. Oracle Self Service Web Applications.
1) Wyszukaj profil na poziomie użytkownika
FND_INIT_SQL PL Inicjalizacja instrukcji SQL – niestandardowa
FND_INIT_SQL US Initialization SQL Statement – Custom
Najlepiej nie zamykać formatki z profilami, żeby nie zapomnieć za chwilę zdjąć profilu.
2) nowym oknie zaloguj się do formatki OAF i przygotuj do wykonania czynności dla których chcesz zrobić trace.
3) wpisz wartość opcji profiku na użytkowniku (jedna długa linia)
BEGIN FND_CTL.FND_SESS_CTL('','', '', 'TRUE','','ALTER SESSION SET TRACEFILE_IDENTIFIER='||''''||'TraceTrade' ||''''||' EVENTS ='||''''||' 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12 '||''''); END;
4) Zapisz profil
5) Wykonaj czynności do trace
6) Usuń wartość profilu dla użytkowika – WAŻNE, żeby trace nie robił w się w nieskończoność bo admin się wkurzy.
7) plik *.trc powinien być na serwerze bazodanowym. W nazwie powinna być data i godzina i nazwa użytkownika. Lokalizację można odczytać w bazie
select value from v$parameter where name = 'user_dump_dest';
8) Plik *.trc trzeba potraktować narzędziem TKPROF
$tkprof raw_trace_file.trc output_file explain=apps/apps sort=(exeela,fchela) sys=no Where: raw_trace_file.trc: Name of trace file output_file: tkprof out file explain: This option provides the explain plan for the sql statements sort: This provides the sort criteria in which all sql statements will be sorted. This will bring the bad sql at the top of the outputfile. sys=no: Disables sql statements issued by user SYS
W wygenerowanym pliku output_file możemy odczytać zapytania jakie były wykonywane.