Skip to main content

How to Trace a Concurrent Request And Generate TKPROF File - Oracle Apps Reports Trace

How to Trace a Concurrent Request And Generate TKPROF File

1. Enable Tracing For The Concurrent Manager Program
· Responsibility: System Administrator
· Navigate: Concurrent > Program > Define
· Query Concurrent Program
· Select the Enable Trace Checkbox
Turn On Tracing
· Responsibility: System Administrator
· Navigate: Profiles > System
· Query Profile Option Concurrent: Allow Debugging
· Set profile to Yes
Run Concurrent Program With Tracing Turned On
· Logon to the Responsibility that runs the Concurrent Program
· In the Submit Request Screen click on Debug Options (B)
· Select the Checkbox for SQL Trace

2. Find Trace File Name
Run the following SQL to find out the Raw trace name and location for the concurrent program. The SQL prompts the user for the request id
SELECT 'Request id:'||request_id , 'Trace id: '||oracle_Process_id, 'Trace Flag: '||req.enable_trace,
'Trace Name: '||dest.value||'/'||lower(dbnm.value)||'_ora_'||oracle_process_id||'.trc',
'Prog. Name: '||prog.user_concurrent_program_name, 'File Name: '||execname.execution_file_name|| execname.subroutine_name , 'Status : '||decode(phase_code,'R','Running') ||'-'||decode(status_code,'R','Normal'), 'SID Serial: '||ses.sid||','|| ses.serial#,
'Module : '||ses.module from fnd_concurrent_requests req,  v$session ses, v$process proc, v$parameter dest, v$parameter dbnm, fnd_concurrent_programs_vl prog, fnd_executables execname where req.request_id = '173753463' and req.oracle_process_id=proc.spid(+) and proc.addr = ses.paddr(+) and dest.name='user_dump_dest'  and dbnm.name='db_name' and req.concurrent_program_id = prog.concurrent_program_id and req.program_application_id = prog.application_id and prog.application_id = execname.application_id and prog.executable_id=execname.executable_id;

3. TKPROF Trace File
Once you have obtained the Raw trace file you need to format the file using TKPROF.
$tkprof DWORTI1_ora_156973_QXMOHAME.trc output_file explain=apps/PWD sort=(exeela,fchela) sys=no
$tkprof DWORTI2_ora_99506.trc 99506 explain=apps/PWD sort=’(exeela,fchela)’ sys=no
tkprof DWORTI2_ora_99506.trc 99506 explain=user/PWD@DB table=sys.plan_table

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: his 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

Another example: To get (TKPROF) sorted by longest running queries first and limits the results to the “Top 10” long running queries
$ tkprof <filename.trc> <output_filename> sys=no explain=apps/<password> sort='(prsela,exeela,fchela)’ print=10 

Comments

Popular posts from this blog

Oracle Forms -- Important Syntaxes

1. To get the enabled property of the item APP_ITEM_PROPERTY.GET_PROPERTY('CONTROL.FILTER_HOLD_RECORDS',ENABLED) 2. Disable Attachment for this Block in WHEN-NEW-BLOCK-INSTANCE  APP_SPECIAL.ENABLE('ATTACHMENTS', PROPERTY_OFF); 3. Default Where / Default Order By Set_block_property('XWII_MATL_DISP_HOLDS_V', Default_where, Lc_query); Set_block_property('XWII_MATL_DISP_HOLDS_V', order_by, Lc_query); 4. Visual Attribute    a. Define Visual Attribute for eg 'XWII' where you can set Colour  b. SET_ITEM_INSTANCE_PROPERTY('block.item_name',CURRENT_RECORD,VISUAL_ATTRIBUTE ,'XWII'); 4. Visual Attribute for Record APP_RECORD.HIGHLIGHT('XWII'); Where 'XWII' is the visual attribute where you can set Colour. 5. Initiliaze SPECIAL Menu app_special.instantiate ('SPECIAL1', GET_GROUP_CHAR_CELL ('SPECIAL_MENU.SPECIAL_MENU_ITEM', 1), '', TRUE, ''); 6. execute_trigger('SPECIAL25...

Oracle Forms - Window Resize ( Changing window size upon minimizing and maximising)

-- Added by Qutub M for View SU Redesign Proj. (Notes) DECLARE ln_width_diff NUMBER; ln_item_width NUMBER; ln_canvas_width NUMBER; ln_view_width NUMBER; BEGIN IF :system.EVENT_WINDOW = 'FULL_NOTE_DISPLAY' THEN ln_width_diff := TO_NUMBER(GET_WINDOW_PROPERTY('FULL_NOTE_DISPLAY',width)) - :PARAMETER.FULL_NOTES_WIDTH; ln_item_width := TO_NUMBER(GET_ITEM_PROPERTY('FULL_NOTE_DISPLAY.FULL_NOTE',width)); ln_canvas_width := TO_NUMBER(GET_CANVAS_PROPERTY('FULL_NOTE_DISPLAY',width)); ln_view_width := TO_NUMBER(GET_VIEW_PROPERTY('FULL_NOTE_DISPLAY',width)); -- SET_VIEW_PROPERTY('FULL_NOTE_DISPLAY', X_POS, 0); SET_VIEW_PROPERTY('FULL_NOTE_DISPLAY', WIDTH, :parameter.view_width+ln_width_diff); SET_CANVAS_PROPERTY('FULL_NOTE_DISPLAY', WIDTH, :parameter.canvas_width+ln_width_diff);     SET_ITEM_PROPERTY('FULL_NOTE_DISPLAY.FULL_NOTE', width, :parameter.item_width+ln_width_diff);     --M...