1.1. 并发请求启用跟踪
AP_EXPENSE_REPORT_HEADERS_ALL (检查事件预警)
1369519
请求Output和Log存放的路径查询
SELECT T.LOGFILE_NAME
,T.OUTFILE_NAME
FROM FND_CONCURRENT_REQUESTS T
WHERE T.REQUEST_ID = '1369499';
如果要对FORM的操作做TRACE操作,可以使用 帮助->诊断->跟踪 中启用跟踪功能来实现。
但是如果要实现对并发请求的trace,需要在 系统管理员->并发->方案->定义 里找到对应的并发请求,并勾选”启用跟踪”项。然后提交这个并发请求,系统就会生成并发请求的trace文件。一个复杂的并发请求,会生成一个很大的trace文件,所以在做完trace后,记得勾除并发请求的“启用跟踪”项。
用如下的SQL来实现查找并发请求的TRACE文件:
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 || '_ANONYMOUS.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 = &REQUEST_ID
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
--- EBS 单实例上所有正在运行的并发请求以及请求目前的状态
select w.seconds_in_wait "Secondswait",
w.event "waitEvent",
w.p1 || chr(10) || w.p2 || chr(10) || w.p3 "Session Wait",
p.spid || chr(10) || s.process "ServerClient",
s.sid || chr(10) || s.serial# || chr(10) || s.sql_hash_value "SidSerialSQLHash",
u.user_name || chr(10) || PHASE_CODE || ' ' || STATUS_CODE ||
chr(10) || s.status "DBPhaseStatusCODEUser",
Request_id || chr(10) || priority_request_id || chr(10) ||
Parent_request_id "Request_id",
concurrent_program_name,
user_concurrent_program_name,
requested_start_Date || chr(10) ||
round((sysdate - requested_start_date) * 1440, 2) || 'M' "RequestStartDate",
ARGUMENT_TEXT,
CONCURRENT_QUEUE_ID,
QUEUE_DESCRIPTION
FROM FND_CONCURRENT_WORKER_REQUESTS,
fnd_user u,
gv$session s,
gv$process p,
gv$session_wait w
WHERE (Phase_Code = 'R')
and hold_flag != 'Y'
and Requested_Start_Date <= SYSDATE
AND ('' IS NULL OR
('' = 'B' AND PHASE_CODE = 'R' AND STATUS_CODE IN ('I', 'Q')))
and '1' in (0, 1, 4)
and requested_by = u.user_id
and s.paddr = p.addr
and s.sid = w.sid
and oracle_process_id = p.spid
and oracle_session_id = s.audsid
order by requested_start_date;