Inhoudsopgave
Wat zijn gelijktijdige managers
- Concurrent Managers zijn de beheerders van achtergrondverwerking voor Oracle-applicaties.
- De belangrijkste functie van Concurrent Managers is het reguleren en controleren van procesverzoeken op basis van een reeks regels.
- Het is een techniek die wordt gebruikt om niet-interactieve, gegevensafhankelijke programma's tegelijkertijd op de achtergrond uit te voeren.
- Oracle Applications wordt geleverd met vooraf gedefinieerde managers, waaronder de Internal Concurrent Manager (ICM), Standard Manager, Conflict Resolution Manager (CRM) en Transaction Managers (TM).
- De Internal Concurrent Manager bestuurt alle andere Concurrent Managers die besturingssysteemprocessen zijn die naar verzoeken peilen.
- Binnen toepassingen kunt u ook een willekeurig aantal gelijktijdige managers maken om bepaalde soorten verzoeken of programma's af te handelen en deze te specialiseren voor uw zakelijke vereisten
- De ICM (Internal Concurrent Manager) bestuurt alle andere gelijktijdige managers.
- De Standard Manager accepteert alle verzoeken. Het heeft geen vooraf gedefinieerde specialisatieregels en is altijd actief. Het wordt niet aanbevolen om specialisatieregels toe te voegen aan de standaardmanager, omdat dit vaak problemen veroorzaakt.
- De Conflict Resolution Manager lost conflicten op, zoals incompatibiliteiten van verzoeken.
Het oplossen van problemen met Concurrent Manager is een belangrijk onderdeel van het beheer van Oracle-apps. Hier zijn de 30 meest bruikbare gelijktijdige manager-query's om u te helpen bij het oplossen van problemen. Log gewoon in op de Oracle-database met geschikte gebruikers-achtige apps om alle details te krijgen
Top 30 meest bruikbare gelijktijdige managerquery's
Vraag om de instelling van de ICM te controleren in de Concurrent Manager-omgeving
selecteer 'PCP' "name", valuefrom apps.fnd_env_contextwhere variable_name ='APPLDCP' andconcurrent_process_id =(select max(concurrent_process_id)from apps.fnd_concurrent_processes waar concurrent_queue_id =1)UNION ALLselecteer 'RAC' "name", decode(count( *), 0, 'N', 1, 'N', 'Y') "waarde" van V$threadUNION ALLselecteer 'GSM' "naam", NVL(v.profile_option_value, 'N') "waarde" van apps. fnd_profile_options p, apps.fnd_profile_option_values vwhere p.profile_option_name ='CONC_GSM_ENABLED'and p.profile_option_id =v.profile_option_idUNION ALLselect naam, waarde van apps.fnd_concurrent_queue_paramswhere queue_application_idpreid =0 en gelijktijdige_id=1_;Vraag om de details van alle ingeschakelde Concurrent Manager te controleren
select fcq.application_id "Application Id",fcq.concurrent_queue_name, fcq.user_concurrent_queue_name "Service",fa.application_short_name, fcq.target_node "Node",fcq.max_processes "Target",fcq.node_name "Primary", fcq. node_name2 "Secondary",fcq.cache_size "Cache Size",fcp.concurrent_processor_name "Program Library",sleep_secondsfrom apps.fnd_concurrent_queues_vl fcq, apps.fnd_application fa, apps.fnd_concurrent_processors fcpwhere fcq.application_id =fa.application_id =fa.application_id fcq.concurrent_processor_id =fcp.concurrent_processor_id en fcq.enabled_flag='Y';Hoe het verzoektype en de programma's voor de gelijktijdige managers te controleren
kolom actie formaat a10kolom manager formaat a20kolom object formaat a20kolom type formaat a10set pagina's 0set regels 400select q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.meaning "Action",l2.meaning "Type", p .user_concurrent_program_name "Object" van apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q,apps.fnd_concurrent_programs_vl p, apps.fnd_lookups l1, apps.fnd_lookups l2where q.concurrent_queue_queue_id =c.concurrent_id 'and c.type_id =p.concurrent_program_idand c.type_application_id =p.application_idand l1.lookup_code =c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='P' en l2.lookup_type ='CP_SPECION ALL RULES application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.meaning "Action",'Application' "Type", a.application_name "Object" from apps.fnd_concurrent_queue_content c, apps.fnd_concu rrent_queues_vl q,apps.fnd_application_vl a, apps.fnd_lookups l1where q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='P'and c.type_id is nullandid c.type_application c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE'UNION ALLselect q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.betekent "Actie",l2.betekent "Type", x.complex_rule_name "Object" cnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q,apps.fnd_concurrent_complex_rules x,apps.fnd_lookups l1, apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_id =_id=c. complex_rule_idand c.type_application_id =x.application_idand l1.lookup_code =c.include_flag en l1.lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='C'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q.qapplication .concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.betekent "Actie", l2.betekent "Type", r.request_class_name "Object"from apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q, apps.looknd_concurrent r.apprequest_concurrent , apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='R'and c.type_id =r.request_class_idand c.type_application_id =r.application_id_code =c.g.lookup_code =c.type_code ='R'and c.type_id =r.request_class_idand c.type_application_id =r.application_id_code =c.g.lookup_code =c.g. .lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='R'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.meaning "Action", l Type", o.oracle_username "Object"van apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q, apps.fnd_oracle_userid o,apps.fnd_lookups l1, apps.fnd_lookups l2where q.application_queue_id =c.concurrent_queue =c.concurrent_queue _application_idand c.type_code ='O'and c.type_id =o.oracle_idand l1.lookup_code =c.include_flag en l1.lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='O'and l2.lookup_type ='CP_SPECIAL_ALL RULES' qUNION .application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.betekent "Actie", l2.betekent "Type", u.user_name "Object"van apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl SERO_VL_O-apps.FNND_O apps.fnd_lookups l1, apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='U'and c.type_id =u.user_idand l1.lookup_code =c.1.lookup_ en ltype ='INCLUDE_EXCLUDE'and l2.lookup_code ='U'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselecteer q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.betekent "Actie", l2",.betekent "Type" to_char(c.type_id) "Object" van apps.fnd_concurrent_queue_content c, apps.fnd_concur rent_queues_vl q,apps.fnd_lookups l1, apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code not in ('C','P','O','R', 'U ') en l1.lookup_code =c.include_flag en l1.lookup_type ='INCLUDE_EXCLUDE'en l2.lookup_code =c.type_code en l2.lookup_type ='CP_SPECIAL_RULES';De shift/max/min voor All the concurrent Manager controleren/vinden
select fcq.application_id,fcq.concurrent_queue_name,fcq.user_concurrent_queue_name,ftp.application_id,ftp.concurrent_time_period_name,fa.application_short_name,ftp.description,fcqs.min_processes,fcqs.max_processes,fcqs.sleep_secondsparameters,fcq.sleep_seconds fcq,apps.fnd_concurrent_queue_size fcqs,apps.fnd_concurrent_time_periods ftp,apps.fnd_application fawhere fcq.application_id =fcqs.queue_application_idand fcq.concurrent_queue_id fcq.concurrent_queue_id =fcqs.concurrent_queue_id en fcqs.periode application_id;Vraag om alle waarden van Concurrent Manager-gerelateerde profieloptie op siteniveau te controleren en daar op te zoeken
SELECT fpo.profile_option_name,fpo.profile_option_id,fpov.profile_option_value,fpov.level_id,fa.application_short_name,fpo.user_profile_option_name,fpo.sql_validation,fpo.descriptionFROM apps.FND_PROFILE_OPTIONS. .application_id =0and fpo.site_enabled_flag ='Y'and (fpo.profile_option_name zoals 'CONC_%'of fpo.profile_option_name zoals 'FS_%'of fpo.profile_option_name zoals 'PRINTER%'of fpo.profile_option_name in ('EDITOR_CHAR', ' FNDCPVWR_FONT_SIZE', 'MAX_PAGE_LENGTH', 'APPLWRK')) en fpo.profile_option_id =fpov.profile_option_idand fpo.application_id =fpov.application_idand fpo.application_id =fa.application_idand fpov.level_id> =10001;Vraag om de status van gelijktijdige manager te controleren vanaf backend
select q.user_concurrent_queue_name service_name,a.application_name srvc_app_name,a.application_short_name srvc_app_short_name,q.concurrent_queue_name service_short_name,decode( (select count(*)from apps.fnd_concurrent_processesp1cp1where f.cue_concurrent_processesp1cp1where f. application_idand ( fcp1.process_status_code in ('C','M')or ( fcp1.process_status_code in ('A', 'D', 'T') en bestaat (selecteer 1from gv$sessionwhere fcp1.session_id =audsid ))) )/*actual_processes */, 0, decode(q.max_processes, 0,'NOT_STARTED', 'DOWN'),q.max_processes, 'UP', 'WARNING' ) service_status,q.max_processes target_processes,(select count(* )van apps.fnd_concurrent_processes fcp2where fcp2.concurrent_queue_id =q.concurrent_queue_idand fcp2.queue_application_id =q.application_idand ( fcp2.process_status_code in ('C','M') /* Bezig met verbinden of migreren ', 'D', 'T') en bestaat (selecteer 1 uit gv$sessionwhere fcp2.session_id =au dsid)))) actual_processes,'' bericht, s.service_handle srvc_handlefrom apps.fnd_concurrent_queues_vl q, apps.fnd_application_vl a,apps.fnd_cp_services swhere q.application_id =a.application_id en s.service_id =UNq waar een manager geen rijen heeft in FND_CONCURRENT_PROCESSES. Outer joins zullen het niet redden. */select q.user_concurrent_queue_name service_name,a.application_name srvc_app_name,a.application_short_name srvc_app_short_name,q.concurrent_queue_name srvc_short_name,decode( q.max_processes, 0, 'NOT_status,NED'), 'NOT_status,NED', serviceD ' bericht, s.service_handle srvc_handlefrom apps.fnd_concurrent_queues_vl q, apps.fnd_application_vl a,apps.fnd_cp_services swhere q.application_id =a.application_idand p.service_id =q.manager_typeand niet bestaat (select_1from apps.process ,'M','A','D','T')en q.concurrent_queue_id =p.concurrent_queue_idand q.application_id =p.queue_application_id);Om alle actieve taken met DB-sessiedetails op het huidige DB-knooppunt te controleren
regels instellen 200set pagina's 200kolom FASE kop 'Fase' formaat A8kolom STATUS kop 'Status' formaat A8kolom PROGRAMMA kop 'Programmanaam' formaat A25kolom REQUESTOR kop 'Aanvrager' formaat A9column START_TIME kop 'Start Tijd' formaat A15kolom RUN_TIME uitvul linker kop ' Runtime(m)' formaat 9999.99kolom OSPID kop 'OSPID' formaat a5kolom SID kop 'DBSID' formaat 99999spool crrunning.lstselect fcrv.request_id REQUEST,decode(fcrv.phase_code,'P','Pending','R','Running ','I','Inactief','Voltooid')FASE,decode(fcrv.status_code, 'A','Wachten', 'B','Hervatten', 'C','Normaal', 'F', 'Gepland', 'G', 'Waarschuwing', 'H', 'In de wacht', 'I', 'Normaal', 'M', 'Geen manager', 'Q', 'Standby', 'R', 'Normaal', 'S', 'Opgeschort', 'T', 'Beëindigt', 'U', 'Uitgeschakeld', 'W', 'Gepauzeerd', 'X', 'Beëindigd', 'Z', 'Wachten ',fcrv.status_code)STATUS,substr(fcrv.program,1,25)PROGRAM,substr(fcrv.requestor,1,9)REQUESTOR,to_char(fcrv.actual_start_date,'MM/DD/RR HH24:MI')START_TIME ,ronde(((sysdate - fcrv.actual_start_date)*1440) ,2)RUN_TIME,substr(fcr.oracle_process_id,1,7)OSPID,vs.sid SID--substr(fcr.os_process_id,1,7)OS_PIDvan apps.fnd_conc_req_summary_v fcrv,apps.fnd_concurrent_requests vs fcr,v$session $process vpwhere fcrv.phase_code ='R'and fcrv.request_id =fcr.request_idand fcr.oracle_process_id =vp.spidand vs.paddr =vp.addrorder door FASE, STATUS, VERZOEK desc/Om het traceerbestand te vinden voor een specifiek gelijktijdig verzoekst
column traceid formaat a8column tracename formaat a80column user_concurrent_program_name formaat a40column execname formaat a15column enable_trace format a12set lines 80set pages 22set head offSELECT 'Request id:'||request_id ,'Trace id:'||oracle_Process_id,|' req.enable_trace,'Trace Name:'||dest.value||'/'||lower(dbnm.value)||'_ora_'||oracle_process_id||'.trc','Prog. Naam:'||prog.user_concurrent_program_name,'Bestandsnaam:'||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.modulefrom apps.fnd_concurrent_requests req, v$session ses, v$process proc,v$parameter dest, v$parameter dbnm, apps.fnd_concurrent_programs_vl prog,apps.fnd_executables execnamewhere req. request_id =&request 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_idand req.concurrent_program_id =prog.concurrent_program_idand req. program_application_id =prog.application_idand prog.application_id =execname.application_idand prog.executable_id=execname.executable_id;Om de algemene aanvraagset-activiteit en de verschillende voltooiingstijd van verzoeken te vinden
lijngrootte instellen 300col "Program Name" formaat a50col Verstreken formaat 9999.99col "Proces-ID" formaat a10col REQUEST_DATE formaat a15col ACTUAL_START_DATE formaat a15col REQUEST formaat 999999999col PARENT formaat 999999999col argument_text formaat a50SELECT /*+ fcptlc)* fcr.request_id "REQUEST", fcr.parent_request_id "PARENT",fcr.oracle_process_id "Proces-ID",fcptl.user_concurrent_program_name "Program Name",fcr.argument_text,DECODE(fcr.phase_code,'X', 'Beëindigd','E ', 'Fout','C','Voltooid','P','In behandeling','R','Running',phase_code) "Fase",DECODE(fcr.status_code,'X','Beëindigd', 'C', 'Normaal', 'D', 'Geannuleerd', 'E', 'Fout', 'G', 'Waarschuwing', 'Q', 'Gepland', 'R', 'Normaal', 'W ','Onderbroken','Niet zeker') "Status",--fcr.phase_code,--fcr.status_code,fcr.request_date,fcr.actual_start_date,fcr.actual_completion_date,(fcr.actual_completion_date - fcr.actual_start_date)*1440 "Verstreken" VAN (SELECT /*+ index (fcr1 FND_CONCURRENT_REQUESTS_N3) */fcr1.request_idFROM fnd_concurrent_requests fcr1W HIER 1=1START MET fcr1.request_id =&request_id--VERBINDEN DOOR PRIOR fcr1.parent_request_id =fcr1.request_id) x,VERBINDEN DOOR PRIOR fcr1.request_id =fcr1.parent_request_id) x,fnd_concurrent_requests fcr,fnd_concurrent_requests fcr,fnd_concurrent_concurrent_concurrent_programma's x.request_idAND fcr.concurrent_program_id =fcp.concurrent_program_idAND fcr.program_application_id =fcp.application_idAND fcp.application_id =fcptl.application_idAND fcp.concurrent_program_id =fcptl.concurrent_program_idANDGU fcpt> 1T o vind de sid van het verzoek-ID
select s.inst_id, fcr.request_id, fv.requestor, fv.Program cmgr_job,p.PID,p.SERIAL#,p.USERNAME p_user,p.SPID,to_char(s.logon_time,'DD-MON- YY HH24:MI:SS') Logon_Time,s.program,s.command,s.sid,s.serial#,s.username,s.process,s.machine,s.action,s.modulefrom apps.fnd_concurrent_requests fcr ,apps.FND_CONC_REQ_SUMMARY_V fv,gv$session s,gv$process pwhere fcr.request_id =&request_idand p.SPID =fcr.oracle_process_idand s.process =fcr.OS_PROCESS_IDand s.inst_id =p.inst_id =p.instpad request_id =fcr.request_id;Om alle dingen in detail te vinden van de specifieke verzoek-ID/query om details van gelijktijdige verzoeken te vinden/hoe de status van gelijktijdige verzoeken van backend/query te controleren om gelijktijdig programma te vinden run time
set pages 100;col request_class_application_id formaat 99999999 kopje 'REQUEST_CLASS|APP_ID'col os_process_id formaat a8col application_short_name formaat a5col Requested_start_date formaat a18 kopje 'VERZOEKDATUM'col actual_start_date formaat a18 kopje 'START DATE'col actual_completion_date formaat a18 kopje 'COMpletion_date formaat a18 --select r.REQUEST_ID,u.user_name, decode(r.PHASE_CODE,'C', 'Complete','P', 'Pending', 'R', 'Running', r.PHASE_CODE) fase,decode(r .STATUS_CODE, 'C', 'Normaal','I' ,'Normaal','R' ,'Normaal','Q', 'Standby', 'E' ,'Fout', 'X' ,'Beëindigd' ,'W', 'Paused' , r.STATUS_CODE) status,r.PRIORITY,decode(r.HOLD_FLAG,'N','"NIET in de wacht"','Y','"ON HOLD"',r. HOLD_FLAG) Hold_flag, p.application_short_name,f.user_concurrent_program_name,f.concurrent_program_name,e.EXECUTABLE_NAME,e.EXECUTION_FILE_NAME,e.EXECUTION_METHOD_CODE,e.EXECUTION_FILE_PATH, v.QUEST_quest_name_path, v.RESPONSIBILITYRE. r.REQUESTED_START_DATE,'DD-MO N-YYYY HH:MI') request_start_date,to_char(r.ACTUAL_START_DATE,'DD-MON-YYYY HH:MI') actual_start_date,decode(r.ACTUAL_COMPLETION_DATE,null,'"Nog steeds actief"',to_char(r.ACTUAL_COMPLETION_DATE, 'DD-MON-YYYY HH:MI')) actual_completion_date,to_char(decode(r.ACTUAL_COMPLETION_DATE,null,SYSDATE,r.ACTUAL_COMPLETION_DATE)-decode(r.ACTUAL_START_DATE,null,SYSDATE,r.ACTUAL_START_DATE),'MI') "Time Running",r.CPU_SECONDS,r.LOGICAL_IOS,r.PHYSICAL_IOS,r.ORACLE_PROCESS_ID,r.ORACLE_SESSION_ID,r.OS_PROCESS_ID,r.CD_ID,decode(r.ENABLE_TRACE,'N', '"NOT Tracing"', 'Y', '"TRACING"', r.ENABLE_TRACE) Traceren,decoderen (f.run_alone_flag, 'N', '"NOT Alone"', 'Y', '"RUN ALONE"', f.run_alone_flag) Alleen, r.ARGUMENT_TEXT Parameters,r.LOGFILE_NAMEfrom fnd_concurrent_requests r, fnd_user u, fnd_application p, fnd_concurrent_programs_vl f,fnd_EXECUTABLEs e, fnd_responsibility_vl v, fnd_concurrent_request_class qwhere u.user_questid =RRENT_PROGRAM_IDand f.EXECUTABLE_ID=e.EXECUTABLE_IDand v.responsibility_id =r.responsibility_idand q.request_class_id (+)=r.concurrent_request_class_idand r.request_id =&reqid;Sql om in behandeling zijnde verzoeken te vinden in alle Concurrent Manager/query om in behandeling zijnde gelijktijdige verzoeken te vinden
select request_id,b.user_concurrent_queue_namefrom apps.fnd_concurrent_worker_requests a,apps.fnd_concurrent_queues_vl bwhere a.phase_code ='P'and a.status_code ='I'and a.hold_flag !='Y'and a.requestedsystart_date <=.concurrent_queue_id =b.concurrent_queue_idand a.control_code is null--and a.concurrent_queue_name !='FNDCRM'en a.concurrent_queue_name niet in ('FNDCRM')volgorde op verzoek_id, b.user_concurrent_queue_name/Hoe u kunt vinden welke manager uw verzoek-ID/query uitvoert om gelijktijdige manager voor gelijktijdige programma's te vindenm
Kolom OsId Formaat A7Kolom Oracle_Process_ID Formaat 99999Kolom Concurrent_Queue_Name Formaat A20Kolom Log Formaat A25Kolom Started_At Formaat A20Set Head OffSet Verifieer OffSet Echo OffSelecteer'De ' || Gelijktijdige_wachtrijnaam ||' gelijktijdige manager heeft uw verzoek uitgevoerd van',to_char(Actual_Start_date, ' MON-DD-YY HH:MI:SS AM') || ' - tot - ' ||to_char(Actual_COMPLETION_date, 'MON-DD-YY UH:MI:SS AM'),'De ' || Gelijktijdige_wachtrijnaam ||' gelijktijdige manager logbestand is ' || P.Logfile_Name,'Verzoek logbestand is ' || R.Logfile_NameFrom Fnd_Concurrent_Queues Q,Fnd_Concurrent_requests R,Fnd_Concurrent_Processes PWhere(P.Concurrent_Queue_ID =Q.Concurrent_Queue_ID AndQueue_Application_ID =Q.Apquest_ID )And R.Controlling_Manager =P.Concurrent_ID =Q.Concurrent_Queue_ID AndQueue_Application_ID =Q.Apquest_ID =&C.Proha_And_Controlling_Manager =P.Concurrent_ID pre>De geschiedenis van het programma Request ID vinden
regelgrootte instellen 250col request_date formaat a15col request_start_date format a15col actual_start_date format a15col actual_completion_date format a15col argument_text format a70col Verstreken formaat 9999.99select * from (select a.request_id, a.parent_request_id,DECODE(a.phase_code,'C','Completed ,'I','Inactief','P','In behandeling','R','Running') || ' ' ||DECODE(a.status_code,'A','Wachtend','B',' Hervatten','C','Normaal','D', 'Geannuleerd', 'E', 'Fout', 'G', 'Waarschuwing', 'H', 'In de wacht', 'I',' Normaal ','M','Geen manager','P','Gepland','Q','Standby','R','Normaal','S','Geschorst','T','Beëindigt' ,'U','Disabled','W','Paused','X','Terminated','Z',' Waiting') "PHASE_STATUS ", a.request_date, a.requested_start_date, a.actual_start_date, a .actual_completion_date ,(nvl(actual_completion_date,sysdate) - actual_start_date)*1440 "Elapsed", a.argument_text ,a.USER_CONCURRENT_PROGRAM_NAMEfrom apps.FND_CONC_REQ_SUMMARY_V a waar a.concurrent_program_id=(reconcurrent_program_quest_id=(reconcurrent_program_quest_id=) st_id=&1)---(nvl(actual_completion_date,sysdate) - actual_start_date)*1440> 10bestellen op a.request_id desc) waarbij rijnummer <100;Query om de geschiedenis van gelijktijdige programma-uitvoeringen te controleren
ttitle offset linesize 180set pagesize 60set newpage 0set pause offset termout onttitle 'CM Analysis Report' skip1col conc_que format a15 kop "Conc Queue"col gebruikersnaam formaat a12 kop "Requestor"col reqid formaat 99999999 kop "Req ID"col sdate format a9 kop "Datum"col astart formaat a8 kop "ActSt|Time"col acomp formaat a8 kop "ActEnd|Time"col rtijd formaat 99.999 kop "ExTme|(Sec)"col wtijd formaat 99.999 kop "WtTme|(Sec)"col pname1 formaat a40 kop "Short|Name"col pname2 formaat a65 kop "Prog Name"col args formaat a25 kop "Argumenten"selecttrunc(actual_start_date) sdate,request_id reqid,user_name,to_char(actual_start_date,'HH24:MI:SS') astart, to_char(actual_completion_date,'HH24:MI:SS') acomp,((actual_start_date - Requested_start_date)*60*60*24) wtime,((actual_completion_date - actuele_start_date)*60*60*24) rtime,que.concurrent_queue_name conc_que,prog .user_concurrent_program_name pname2,req.argument_text argsfromapplsys.fnd_concurrent_queues que,app lsys.fnd_user usr,applsys.fnd_concurrent_programs prog,applsys.fnd_concurrent_requests req,applsys.fnd_concurrent_processes procwhere(actual_start_date between to_date('&start_date', 'DD-MON-YYYY HH24:MI:date,'&DD to -MON-YYYY HH24:MI:SS')oractual_completion_date tussen to_date('&start_dte', 'DD-MON-YYYY HH24:MI:SS') en to_date('&end_date', 'DD-MON-YYYY HH24:MI:SS '))anduser_concurrent_program_name like '&program_name%'andque.application_id=proc.queue_application_idandque.concurrent_queue_id =proc.concurrent_queue_idandreq.controlling_manager=proc.concurrent_process_idandusr.user_id =req.requested_byandprog.concurrent_program_id =req.concurrent_program_idandprog.application_id =req.program_application_idand prog.concurrent_program_name not in('ACTIVATE','ABORT','DEACTIVATE','VERIFY')bestellen opactual_start_date;Query om een actief verzoek te vinden in Concurrent Manager/ hoe u een actief gelijktijdig verzoek kunt controleren van backend/concurrent programmastatusquery in oracle-apps
set pagina's 58set linesize 79Column Reqst Format 999999Column Requestor Format A10Column Orcl Format A7Column Program Format A10Column Started Format A14Column Manager Format A11Column LN Format a10Column Reqst HEADING 'Request|ID 'Column Requestor HEADING 'Requestor HEAD'ING' Kolom gestart HEADING 'Begin bij'Kolom MANAGER HEADING 'Controlling|Manager'Kolom LN HEADING 'Logbestand|naam'Kolom Programma HEADING 'Program'select Request_Id Reqst, User_Name Requestor, Oracle_Username Orcl,Fcr.Logfile_Name LN,Concurrent_Concurrent_Concurrent_Name_Name_Name To_Char(Actual_Start_Date, 'Mm-Dd-Yy Hh24:Mi') Started,Run_Alone_Flag, Single_Thread_FlagFrom Fnd_Concurrent_Requests Fcr, Fnd_Concurrent_Programs Fcp,Fnd_Oracle_Userid O, Fnd_Concurrent_Processes P,Fnd_Concurrent_Queues Q, Fnd_UserWhereControlling_Manager =Concurrent_Process_IDAnd ( P.Concurrent_Queue_ID =Q.Concurrent_Queue_ID ANDP.Queue_Application_ID =Q.Application_ID )En O.Oracle_Id =Fcr.Orac le_IdAnd ( Fcr.Program_Application_Id =Fcp.Application_IdAnd Fcr.Concurrent_Program_Id =Fcp.Concurrent_Program_Id )And Requested_By =User_IdAnd Phase_Code ='R' and Status_Code ='R'Order By Actual>Start_Date, pre Request_Id/DateQuery om beëindigingsverzoeken te vinden in Concurrent Manager
pagina's instellen 58set linesize 79Column Reqst Format 999999Column Requestor Format A10Column Orcl Format A7Column Program Format A10Column Started Format A14Column Manager Format A11Column LN Format a10Column Reqst HEADING 'Request|ID'Column Requestor HEADING 'Requestor HEAD'ING Kolom gestart HEADING 'Begonnen bij'Kolom MANAGER HEADING 'Controlling|Manager'Kolom LN HEADING 'Logbestand|naam'Kolom Programma HEADING 'Program'Select Request_Id Reqst, User_Name Requestor, Oracle_Username Orcl,Fcr.Logfile_Name LN,Concurrent_Concurrent_Program_Name Manager, Program To_Char(Actual_Start_Date, 'Mm-Dd-Yy Hh24:Mi') Started,Run_Alone_Flag, Single_Thread_FlagFrom Fnd_Concurrent_Requests Fcr, Fnd_Concurrent_Programs Fcp,Fnd_Oracle_Userid O, Fnd_Concurrent_Processes P,Fnd_Concurrent_Queues Q, Fnd_UserWhereControlling_Manager =Concurrent_Process_IDAnd ( P.Concurrent_Queue_ID =Q.Concurrent_Queue_ID ANDP.Queue_Application_ID =Q.Application_ID )And O.Oracle_Id =Fcr.Orac le_IdAnd ( Fcr.Program_Application_Id =Fcp.Application_IdAnd Fcr.Concurrent_Program_Id =Fcp.Concurrent_Program_Id )And Requested_By =User_IdAnd Phase_Code ='R' and Status_Code ='T'Order By Actual_Start_Date, Request_Id/Query to find Paused Requests in Concurrent Manager
set pages 58set linesize 79Column Reqst Format 999999Column Requestor Format A10Column Orcl Format A7Column Program Format A10Column Started Format A14Column Manager Format A11Column LN Format a10Column Reqst HEADING 'Request|ID 'Column Requestor HEADING 'Requestor'Column Orcl HEADING 'Oracle|Name'Column Started HEADING 'Started at'Column MANAGER HEADING 'Controlling|Manager'Column LN HEADING 'Logfile|name'Column Program HEADING 'Program'Select Request_Id Reqst, User_Name Requestor, Oracle_Username Orcl,Fcr.Logfile_Name LN,Concurrent_Program_Name Program,To_Char(Actual_Start_Date, 'Mm-Dd-Yy Hh24:Mi') Started,Run_Alone_Flag, Single_Thread_FlagFrom Fnd_Concurrent_Requests Fcr, Fnd_Concurrent_Programs Fcp,Fnd_Oracle_Userid O, Fnd_UserWhere Status_Code ='W'And Fcr.Concurrent_Program_Id =Fcp.Concurrent_Program_IdAnd Fcr.Program_Application_Id =Fcp.Application_IdAnd Requested_By =User_IdAnd O.Oracle_Id =Fcr.Oracle_IdOrder By Actual_Start_Date, Request_Id/Check the log and outfile created from certain time period
select outfile_node_name,outfile_name, logfile_node_name,logfile_namefrom fnd_concurrent_requestswhere phase_code ='C' andactual_completion_dateRun the following query to check whether any specialization rule defined for any concurrent manager that includes/excludes the concurrent program in question. Query returns ‘no rows selected’ when there are no Include/Exclude specialization rules of Program type for the given concurrent program.
select 'Concurrent program '||fcp.concurrent_program_name||' is ' ||decode(fcqc.include_flag,'I','included in ','E','excluded from ')||fcqv.user_concurrent_queue_name specialization_rule_details from fnd_concurrent_queues_vl fcqv,fnd_concurrent_queue_content fcqc,fnd_concurrent_programs fcp where fcqv.concurrent_queue_id=fcqc.concurrent_queue_id and fcqc.type_id=fcp.concurrent_program_id and fcp.concurrent_program_name=''; Query to find the concurrent program id from concurrent request
select concurrent_program_id from fnd_concurrent_requests where request_id=&1;Last 100 execution detail of concurrent program
set linesize 250col request_date format a15col requested_start_date format a15col actual_start_date format a15col actual_completion_date format a15col argument_text format a70col Elapsed format 9999.99select * from (select a.request_id, a.parent_request_id,DECODE(a.phase_code,'C','Completed','I','Inactive','P','Pending','R','Running') || ' ' ||DECODE(a.status_code,'A','Waiting','B','Resuming','C','Normal','D','Cancelled','E','Error','G','Warning','H','On Hold','I',' Normal','M','No Manager','P','Scheduled','Q','Standby','R',' Normal','S','Suspended','T','Terminating','U','Disabled','W','Paused','X','Terminated','Z',' Waiting') "PHASE_STATUS ", a.request_date, a.requested_start_date, a.actual_start_date, a.actual_completion_date,(nvl(actual_completion_date,sysdate) - actual_start_date)*1440 "Elapsed", a.argument_text ,a.USER_CONCURRENT_PROGRAM_NAMEfrom apps.FND_CONC_REQ_SUMMARY_V a where a.concurrent_program_id=(select concurrent_program_id from fnd_concurrent_requests where request_id=&1)order by a.request_id desc) where rownum <100;To find the logfile /outfile/node name for the particular request
SELECT 'LOGFILE_NAME=' || logfile_nameFROM fnd_concurrent_requestsWHERE request_id =&req/SELECT 'LOGFILE_NODE_NAME=' || logfile_node_nameFROM fnd_concurrent_requestsWHERE request_id =&req/SELECT 'OUTFILE_NAME=' || outfile_nameFROM fnd_concurrent_requestsWHERE request_id =&req/SELECT 'OUTFILE_NODE_NAME=' || outfile_node_nameFROM fnd_concurrent_requestsWHERE request_id =&reqCheck ICM is running on what node
select a.concurrent_queue_name,a.target_node, substr(b.os_process_id,0,10) “OS Proc”, b.oracle_process_id “Oracle ID”, b.process_status_codefrom apps.fnd_concurrent_queues a, apps.fnd_concurrent_processes bwhere a.concurrent_queue_id=b.concurrent_queue_idand a.concurrent_queue_name=’FNDICM’and b.process_status_code=’A’order by b.process_status_code/Check OS process ID/Target node for CM
Select User_Concurrent_Queue_Name Manager, Q.Target_Node Node, Os_Process_IDfrom apps.fnd_concurrent_queues_vl Q,apps.Fnd_Concurrent_Processes Pwhere Q.Application_Id =Queue_Application_IDAnd (Q.Concurrent_Queue_ID =P.Concurrent_Queue_ID);To know the correct status of the Concurrent request from the back end
The view FND_AMP_REQUESTS_V shows the proper phase and statusselect request_id, phase, statusfrom fnd_amp_requests_v;Check the completion text for the concurrent request
select COMPLETION_TEXT from apps.fnd_concurrent_requests where REQUEST_ID=&n;To Check Actual and Target Processes for Internal Manager
select MAX_PROCESSES,RUNNING_PROCESSESfrom FND_CONCURRENT_QUEUESwhere CONCURRENT_QUEUE_NAME='FNDICM';To check the Actual and Target Processes for Standard Manager
select MAX_PROCESSES,RUNNING_PROCESSESfrom FND_CONCURRENT_QUEUESwhere CONCURRENT_QUEUE_NAME='STANDARD';To check the invalid objects related to FND
select substr(owner,1, 12) owner, substr(object_type,1,12) type,substr(status,1,8) status, substr(object_name, 1, 25) namefrom dba_objectswhere object_name like 'FND_%'and status='INVALID';Query to check whether any specialization rule defined for any concurrent manager that includes/excludes the concurrent program in question.
select 'Concurrent program '||fcp.concurrent_program_name||' is ' ||decode(fcqc.include_flag,'I','included in ','E','excluded from ')||fcqv.user_concurrent_queue_name specialization_rule_details from fnd_concurrent_queues_vl fcqv,fnd_concurrent_queue_content fcqc,fnd_concurrent_programs fcp where fcqv.concurrent_queue_id=fcqc.concurrent_queue_id and fcqc.type_id=fcp.concurrent_program_id and fcp.concurrent_program_name=''; Note:Program Short Name is visible when the program is queried in concurrent program definition form.
Query returns ‘no rows selected’ when there are no Include/Exclude specialization rules of Program type for the given concurrent program.
For each manager get the number of pending and running requests in each queue:
col "USER_CONCURRENT_QUEUE_NAME" format a40;SELECT a.USER_CONCURRENT_QUEUE_NAME,a.MAX_PROCESSES,sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'Q',1,0),0)) Pending_Standby,sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'I',1,0),0)) Pending_Normal,sum(decode(b.PHASE_CODE,'R',decode(b.STATUS_CODE,'R',1,0),0)) Running_NormalFROM FND_CONCURRENT_QUEUES_VL a, FND_CONCURRENT_WORKER_REQUESTS bwhere a.concurrent_queue_id =b.concurrent_queue_idAND b.Requested_Start_Date<=SYSDATEGROUP BY a.USER_CONCURRENT_QUEUE_NAME,a.MAX_PROCESSESTo Get Long Running Concurrent Programs:
SELECT fcr.oracle_session_id,fcr.request_id rqst_id,fcr.requested_by rqst_by,fu.user_name,fr.responsibility_name,fcr.concurrent_program_id cp_id,fcp.user_concurrent_program_name cp_name,TO_CHAR (fcr.actual_start_date, 'DD-MON-YYYY HH24:MI:SS')act_start_datetime,DECODE (fcr.status_code, 'R', 'R:Running', fcr.status_code) status,ROUND (((SYSDATE - fcr.actual_start_date) * 60 * 24), 2) runtime_min,ROUND (((SYSDATE - fcr.actual_start_date) * 60 * 60 * 24), 2)runtime_sec,fcr.oracle_process_id "oracle_pid/SPID",fcr.os_process_id os_pid,fcr.argument_text,fcr.outfile_name,fcr.logfile_name,fcr.enable_traceFROM apps.fnd_concurrent_requests fcr,apps.fnd_user fu,apps.fnd_responsibility_tl fr,apps.fnd_concurrent_programs_tl fcpWHERE fcr.status_code LIKE 'R'AND fu.user_id =fcr.requested_byAND fr.responsibility_id =fcr.responsibility_idAND fcr.concurrent_program_id =fcp.concurrent_program_idAND fcr.program_application_id =fcp.application_idAND ROUND (((SYSDATE - fcr.actual_start_date) * 60 * 24), 2)> 60ORDER BY fcr.concurrent_program_id,request_id DESC;Checking the incompatibilities between the programs/query to find incompatible program of a concurrent
The below query can be used to find all incompatibilities in an application instance.SELECT a2.application_name, a1.user_concurrent_program_name, DECODE (running_type, 'P', 'Program', 'S', 'Request set', 'UNKNOWN' ) "Type", b2.application_name "Incompatible App", b1.user_concurrent_program_name "Incompatible_Prog", DECODE (to_run_type, 'P', 'Program', 'S', 'Request set', 'UNKNOWN' ) incompatible_type FROM apps.fnd_concurrent_program_serial cps, apps.fnd_concurrent_programs_tl a1, apps.fnd_concurrent_programs_tl b1, apps.fnd_application_tl a2, apps.fnd_application_tl b2 WHERE a1.application_id =cps.running_application_id AND a1.concurrent_program_id =cps.running_concurrent_program_id AND a2.application_id =cps.running_application_id AND b1.application_id =cps.to_run_application_id AND b1.concurrent_program_id =cps.to_run_concurrent_program_id AND b2.application_id =cps.to_run_application_id AND a1.language ='US' AND a2.language ='US' AND b1.language ='US' AND b2.language ='US';GET THE CURRENT SQL STATEMENT RUNNING FOR A CONCURRENT REQUEST
SELECT A.REQUEST_ID, D.SID, D.SERIAL#, D.OSUSER, D.PROCESS, C.SPID,E.SQL_TEXTFROM APPS.FND_CONCURRENT_REQUESTS A,APPS.FND_CONCURRENT_PROCESSES B,V$PROCESS C,V$SESSION D,V$SQL EWHERE A.CONTROLLING_MANAGER =B.CONCURRENT_PROCESS_IDAND C.PID =B.ORACLE_PROCESS_IDAND B.SESSION_ID =D.AUDSIDAND D.SQL_ADDRESS =E.ADDRESSAND A.REQUEST_ID ='&REQUEST_ID';Cancelling Concurrent request/update concurrent request status from backend
--By request id update fnd_concurrent_requestsset status_code='D', phase_code='C'where request_id=&reqid;--By program_idupdate fnd_concurrent_requestsset status_code='D', phase_code='C'where CONCURRENT_PROGRAM_ID=&prgid;How to submit a concurrent program using the CONCSUB utility from the operating system
CONCSUB / \[WAIT=N|Y|] \CONCURRENT \[PROGRAM_NAME=] \[ORG_ID=<#>] - R12 onwards only[REPEAT_TIME=] \[REPEAT_INTERVAL=] \[REPEAT_INTERVAL_UNIT=] \[REPEAT_INTERVAL_TYPE= ] \[REPEAT_END=] \[START=] \[IMPLICIT= \[ ... ] how to enable trace for a running concurrent request
First Find the sid and serial# using below queries
For RAC
select s.inst_id, fcr.request_id, fv.requestor, fv.Program cmgr_job,
p.PID,
p.SERIAL#,
p.USERNAME p_user,
p.SPID,
to_char(s.logon_time,'DD-MON-YY HH24:MI:SS') Logon_Time,
s.program,
s.command,
s.sid,
s.serial#,
s.username,
s.process,
s.machine,
s.action,
s.module
from apps.fnd_concurrent_requests fcr,
apps.FND_CONC_REQ_SUMMARY_V fv,
gv$session s,
gv$process p
where fcr.request_id =&request_id
and p.SPID =fcr.oracle_process_id
and s.process =fcr.OS_PROCESS_ID
and s.inst_id =p.inst_id
and p.addr =s.paddr
and fv.request_id =fcr.request_id
;For Non-RAC, the above and below both can be used
select s.sid , s.serial# ,p.spid from fnd_concurrent_requests f,v$session s , v$process p where f.request_id =and f.oracle_process_id =p.spid and p.addr =s.paddrEnable Trace
EXEC DBMS_SYSTEM.SET_EV(&sid , &serial,10046, 12 ,'');Check the Trace file
Log on to the DB Tier …. Check for the trace file
_ora_ .trc Find the scheduled concurrent requests:
SELECT cr.request_id,
DECODE (cp.user_concurrent_program_name,
'Report Set', 'Report Set:' || cr.description,
cp.user_concurrent_program_name
) NAME,
argument_text, cr.resubmit_interval,
NVL2 (cr.resubmit_interval,
'PERIODICALLY',
NVL2 (cr.release_class_id, 'ON SPECIFIC DAYS', 'ONCE')
) schedule_type,
DECODE (NVL2 (cr.resubmit_interval,
'PERIODICALLY',
NVL2 (cr.release_class_id, 'ON SPECIFIC DAYS', 'ONCE')
),
'PERIODICALLY', 'EVERY '
|| cr.resubmit_interval
|| ' '
|| cr.resubmit_interval_unit_code
|| ' FROM '
|| cr.resubmit_interval_type_code
|| ' OF PREV RUN',
'ONCE', 'AT :'
|| TO_CHAR (cr.requested_start_date, 'DD-MON-RR HH24:MI'),
'EVERY:' || fcr.class_info
) schedule,
fu.user_name, requested_start_date
FROM apps.fnd_concurrent_programs_tl cp,
apps.fnd_concurrent_requests cr,
apps.fnd_user fu,
apps.fnd_conc_release_classes fcr
WHERE cp.application_id =cr.program_application_id
AND cp.concurrent_program_id =cr.concurrent_program_id
AND cr.requested_by =fu.user_id
AND cr.phase_code ='P'
AND cr.requested_start_date> SYSDATE
AND cp.LANGUAGE ='US'
AND fcr.release_class_id(+) =cr.release_class_id
AND fcr.application_id(+) =cr.release_class_app_id;History of concurrent requests which are error out in last 2 days
SELECT a.request_id "Req Id"
,a.phase_code,a.status_code
, actual_start_date
, actual_completion_date
,c.concurrent_program_name || ':' || ctl.user_concurrent_program_name "program"
FROM APPLSYS.fnd_Concurrent_requests a,APPLSYS.fnd_concurrent_processes b
,applsys.fnd_concurrent_queues q
,APPLSYS.fnd_concurrent_programs c
,APPLSYS.fnd_concurrent_programs_tl ctl
WHERE a.controlling_manager =b.concurrent_process_id
AND a.concurrent_program_id =c.concurrent_program_id
AND a.program_application_id =c.application_id
AND a.status_code ='E'
AND a.phase_code ='C'
AND actual_start_date> sysdate - 2
AND b.queue_application_id =q.application_id
AND b.concurrent_queue_id =q.concurrent_queue_id
AND ctl.concurrent_program_id =c.concurrent_program_id
AND ctl.LANGUAGE ='US'
ORDER BY 5 DESC;query to check trace enabled for concurrent program
SELECT A.CONCURRENT_PROGRAM_NAME "Program Name", SUBSTR(A.USER_CONCURRENT_PROGRAM_NAME,1,40) "User Program Name", SUBSTR(B.USER_NAME,1,15) "Last Updated By", SUBSTR(B.DESCRIPTION,1,25) DESCRIPTION FROM APPS.FND_CONCURRENT_PROGRAMS_VL A, APPLSYS.FND_USER B WHERE A.ENABLE_TRACE='Y' AND A.LAST_UPDATED_BY=B.USER_ID;Related Articles
Oracle Concurrent Manager :How an E-Business Suite Concurrent Manager Process Works,Oracle Concurrent Manager,What is internal monitor,What is service manager and troubleshooting
Concurrent Request Phase and status :All information about Concurrent Request Phase and Status .The meaning derived for each combination .
Core files in Oracle Concurrent manager :his page contains description about core file for oracle concurrent manager.Core file can be used to debug various issues in CM
Priority for concurrent Program :This post has detailed description about changing Priority for Concurrent Program or user or request to solve user critical report running issues
Concurrent Manager Interview questions :Check out 24 Concurrent Manager Interview questions to help you in EBS interview. This consists of all sort of question on standard manager,service manager
Parallel Concurrent Processing:What is PCP, How to setup it, how to define internal monitor
ORA-01427 :Check out this for the solution on ORA-01427:single-row subquery returns more than one row error ,how to resolve it when it happens with Concurrent ManagerRecommended Courses
The following are some of the recommended courses you can buy if you want to get a step further
Given below are the links to some of the courses
Oracle DBA 11g/12c – Database Administration for Junior DBA :This course is good for the people who are starting as Junior DBA or aspire to be Oracle DBA. This will provide a good understanding of backup &recovery and General administration tasks
Oracle Database:Oracle 12C R2 RAC Administration :This course covers the installation, administration of Oracle RAC. A good course for Oracle DBA who want to upgrade his skills for Oracle RAC
Oracle Data Guard:Database Administration for Oracle 12C R2 :This course covers the installation, administration of Oracle Dataguard. A good course for Oracle DBA who want to upgrade his skills for Oracle DataguardRecommended Books
OCA/OCP Oracle Database 12c All-in-One Exam Guide (Exams 1Z0-061, 1Z0-062, &1Z0-063)
Oracle Database 12c DBA Handbook (Oracle Press)
Oracle DBA All-in-one Scripts – A guide every DBA must have:Oracle dba scripts collection used by expert database administrators everyday. Must have dba scripts for your daily activities!