Daftar Isi
Apa itu Manajer Konkuren
- Manajer Bersamaan adalah pengontrol pemrosesan latar belakang untuk Aplikasi Oracle.
- Fungsi utama Manajer Bersamaan adalah untuk mengatur dan mengontrol permintaan proses berdasarkan seperangkat aturan.
- Ini adalah teknik yang digunakan untuk menjalankan program non-interaktif yang bergantung pada data secara bersamaan di latar belakang.
- Aplikasi Oracle dilengkapi dengan manajer yang telah ditentukan sebelumnya, termasuk Internal Concurrent Manager (ICM), Manajer Standar, Manajer Resolusi Konflik (CRM), dan Manajer Transaksi (TM).
- Manajer Konkuren Internal mengontrol semua Manajer Konkuren lainnya yang merupakan proses sistem operasi yang mengumpulkan permintaan.
- Dalam Aplikasi, Anda juga dapat membuat sejumlah Manajer Bersamaan untuk menangani jenis permintaan atau program tertentu dan mengkhususkannya untuk kebutuhan bisnis Anda
- ICM (Manajer Konkuren Internal) mengontrol semua manajer konkuren lainnya.
- Manajer Standar menerima setiap dan semua permintaan. Itu tidak memiliki aturan spesialisasi yang telah ditentukan dan aktif sepanjang waktu. Tidak disarankan untuk menambahkan aturan spesialisasi ke manajer standar karena biasanya menyebabkan masalah.
- Pengelola Resolusi Konflik menyelesaikan konflik, seperti permintaan yang tidak kompatibel.
Pemecahan masalah Manajer Bersamaan adalah bagian utama dari administrasi aplikasi Oracle. Berikut adalah 30 Pertanyaan Manajer Serentak Paling Berguna untuk membantu Anda menyelesaikan masalah. Cukup login ke database oracle dengan aplikasi seperti pengguna yang sesuai untuk mendapatkan semua detail
30 Kueri Manajer Serentak Paling Berguna Teratas
Kueri untuk memeriksa pengaturan ICM di lingkungan Manajer Bersamaan
pilih "nama" 'PCP', nilaidari apps.fnd_env_contextwhere variable_name ='APPLDCP' andconcurrent_process_id =(pilih maks(concurrent_process_id)dari apps.fnd_concurrent_processes di mana concurrent_queue_id =1)UNION ALLpilih "nama" 'RAC', decode(count( *), 0, 'N', 1, 'N', 'Y') "nilai" dari V$threadUNION ALLpilih 'GSM' "nama", NVL(v.profile_option_value, 'N') "nilai"dari aplikasi. fnd_profile_options p, apps.fnd_profile_option_values vwhere p.profile_option_name ='CONC_GSM_ENABLED'dan p.profile_option_id =v.profile_option_idUNION SEMUApilih nama, nilai dari apps.fnd_concurrent_queue_paramswhere queue_application_queue_ =0 dan bersamaanKueri untuk memeriksa detail semua Pengelola Bersamaan yang diaktifkan
pilih fcq.application_id "Id Aplikasi", fcq.concurrent_queue_name, fcq.user_concurrent_queue_name "Layanan", nama_aplikasi_fa, fcq.target_node "Node", fcq.max_processes "Target", fcq.node_name "Utama" node_name2 "Sekunder", fcq.cache_size "Ukuran Cache", fcp.concurrent_processor_name "Perpustakaan Program",sleep_secondsfrom apps.fnd_concurrent_queues_vl fcq, apps.fnd_application fa, apps.fnd_concurrent_processors fcpwhere fcq.application_id =fa.idapplication_processors dan fcp.application_id =fa. fcq.concurrent_processor_id =fcp.concurrent_processor_id dan fcq.enabled_flag='Y';Cara memeriksa jenis permintaan dan Program untuk Manajer bersamaan
format tindakan kolom a10format pengelola kolom a20format objek kolom a20format jenis kolom a10set halaman 0set baris 400pilih q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.berarti "Tindakan",l2.berarti "Jenis", p .user_concurrent_program_name "Objek"dari 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_concurrent_queue_que_id =c.idapand_lookup 'dan c.type_id =p.concurrent_program_iddan c.type_application_id =p.application_id dan l1.lookup_code =c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE'dan l2.lookup_code ='P' dan l2.lookup_type ='PECION_lookup_type' application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.berarti "Tindakan",'Application' "Type", a.application_name "Object"dari 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_iddan q.application_id =c.queue_application_id dan c.type_code ='P'dan c.type_id adalah null dan c.id aplikasi adalah null dan c. c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE'UNION ALLpilih q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.berarti "Action",l2.berarti "Type",_.complex_rule fnd_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_iddan q.code_application_id =c.id.dan c. complex_rule_iddan c.type_application_id =x.application_id dan l1.lookup_code =c.include_flag dan l1.lookup_type ='INCLUDE_EXCLUDE' dan l2.lookup_code ='C'and l2.lookup_type ='CP_SUNIAL_RULES'pilihanq. .concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.berarti "Tindakan", l2.berarti "Jenis", r.request_class_name "Objek"dari apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q, apps_.fnd , apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_id dan q.application_id =c.queue_application_id dan c.type_code ='R' dan c.type_id =r.request_class_iddan c.type_application_id =r.application_idand flag1. .lookup_type ='INCLUDE_EXCLUDE' dan l2.lookup_code ='R'dan l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLpilih q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager" Ketik", o.oracle_username "Object"dari 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.concurrent_queue_queue_quee_concurrent id =c.concurrent _application_idand c.type_code ='O'dan c.type_id =o.Oracle_iddan l1.lookup_code =c.include_flag dan l1.lookup_type ='INCLUDE_EXCLUDE' dan l2.lookup_code ='O'dan l2.lookup_pilih_PECIAL_type =' .application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.berarti "Tindakan", l2.berarti "Jenis", u.user_name "Objek"dari apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl . apps.fnd_lookups l1, apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_id dan q.application_id =c.queue_application_id dan c.type_code ='U'dan c.type_id =u.user_id dan l1.lookup_code =c.include_flag 'INCLUDE_EXCLUDE'and l2.lookup_code ='U'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLpilih q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.meaning " to_char(c.type_id) "Objek"dari 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_iddan q.application_id =c.queue_application_iddan c.type_code tidak ada ('C','P','O','R', ' ')dan l1.lookup_code =c.include_flag dan l1.lookup_type ='INCLUDE_EXCLUDE' dan l2.lookup_code =c.type_code dan l2.lookup_type ='CP_SPECIAL_RULES';Cara memeriksa/menemukan shift/maks/mnt untuk Semua Manajer serentak
pilih 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 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 =fcqs.concurrent_queue_idand fcqs.period_application_id =ftp.application_idand fcqs.concurrent_time_period_id =ftp.concurrent_time_period_idand ftp.application_id =fa. application_id;
Kueri untuk memeriksa semua nilai Opsi profil tingkat Situs terkait Manajer dan pencarian di sana
PILIH 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_OPTION_OPTIONS_VL fpo. .application_id =0dan fpo.site_enabled_flag ='Y'dan (fpo.profile_option_name seperti 'CONC_%'atau fpo.profile_option_name seperti 'FS_%'atau fpo.profile_option_name seperti 'PRINTER%'atau fpo.profile_option_name di ('EDITOR'_CHAR FNDCPVWR_FONT_SIZE', 'MAX_PAGE_LENGTH', 'APPLWRK'))dan fpo.profile_option_id =fpov.profile_option_id dan fpo.application_id =fpov.application_id dan fpo.application_id =fa.application_id dan fpov.Kueri untuk memeriksa status pengelola serentak dari belakangnd
pilih q.user_concurrent_queue_name service_name, nama_aplikasi_srvc_nama_aplikasi,a.application_short_name srvc_app_short_name,q.concurrent_queue_name service_short_name,decode( ( pilih count(*)from apps.fnd_concurrent_where_fnd_concurrent_where application_idand ( fcp1.process_status_code di ('C','M')atau ( fcp1.process_status_code di ('A', 'D', 'T')dan ada (pilih 1dari 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,(pilih count(* )dari 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') /* Menghubungkan atau Memigrasikan *.atau proses ', 'D', 'T')dan ada (pilih 1 dari gv$sessionwhere fcp2.session_id =au Perlu dsid)))) actual_processes,'' message, s.service_handle srvc_handlefrom apps.fnd_concurrent_queues_vl q, apps.fnd_application_vl a,apps.fnd_cp_services tempat q.application_id =a.application_id dan s.manager_id s. di mana seorang manajer tidak memiliki baris di FND_CONCURRENT_PROCESSES. Sambungan luar tidak akan memotongnya. */pilih 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, 'tidak ada_proses_ aktual ' pesan, 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 dan s.service_id =q.manager_type_concurrent_process (pilihan_jenis proses dan tidak ada aplikasi ,'M','A','D','T')and q.concurrent_queue_id =p.concurrent_queue_iddan q.application_id =p.queue_application_id);
Untuk memeriksa Semua pekerjaan yang sedang berjalan dengan detail sesi DB pada node DB saat ini
atur baris 200 set halaman 200 kolom Judul PHASE format 'Fase' A8 kolom Judul STATUS Format 'Status' Format A8 kolom Judul PROGRAM format 'Nama Program' format A25 kolom REQUESTOR Judul format 'Peminta' A9 kolom START_TIME Judul 'Waktu Mulai' format A15 kolom kiri judul RUN_TIME Runtime(m)' format 9999.99column OSPID heading 'OSPID' format a5column SID heading 'DBSID' format 99999spool crrunning.lstpilih fcrv.request_id REQUEST,decode(fcrv.phase_code,'P','Pending','R','Running ','Saya','Tidak Aktif','Selesai')FASE,dekode(fcrv.status_code, 'A','Menunggu', 'B','Melanjutkan', 'C','Normal', 'F', 'Terjadwal','G','Peringatan', 'H','Ditahan', 'Saya','Normal', 'M','Tidak Ada Manajer','Q','Siaga', 'R', 'Normal', 'S','Ditangguhkan', 'T','Terminasi','U','Nonaktif', 'W','Dijeda', 'X','Dihentikan','Z','Menunggu ',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 ,bulat(((tanggal sys - 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_PIDfrom apps.fnd_conc_req_summary_v fcrv,apps.fnd_concurrent_requests fcr,v$session vs,v $process vpwhere fcrv.phase_code ='R'dan fcrv.request_id =fcr.request_id dan fcr.Oracle_process_id =vp.spidand vs.paddr =vp.addrorder by PHASE, STATUS, REQUEST desc/
Untuk menemukan file Trace untuk permintaan bersamaan tertentust
format kolom traceid a8column format tracename a80column format user_concurrent_program_name a40column format execname a15column format enable_trace a12set lines 80set pages 22set head offSELECT 'Request id:'||request_id ,'Trace id:'||oracle_Process_id,'|Trace Flag:id req.enable_trace,'Nama Jejak:'||dest.value||'/'||lower(dbnm.value)||'_ora_'||Oracle_process_id||'.trc','Prog. Nama:'||prog.user_concurrent_program_name,'Nama File:'||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 req execnamewhere request_id =&requestand 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_iddan req. program_application_id =prog.application_iddan prog.application_id =execname.application_iddan prog.executable_id=execname.executable_id;
Untuk menemukan keseluruhan aktivitas kumpulan Permintaan dan berbagai waktu penyelesaian permintaannya
setel ukuran garis format 300col "Nama Program" a50col Format berlalu 9999.99col format "ID Proses" a10col format REQUEST_DATE a15col ACTUAL_START_format TANGGAL a15col format REQUEST 999999999col format INDUK 999999999col format argumen_teks a50SELECT /*+ ORDERED USE_NL(x fcr fc) fcr.request_id "REQUEST", fcr.parent_request_id "PARENT",fcr.Oracle_process_id "Process ID",fcptl.user_concurrent_program_name "Nama Program",fcr.argument_text,DECODE(fcr.phase_code,'X', 'Dihentikan','E ', 'Kesalahan','C','Selesai','P','Tertunda','R','Berjalan',phase_code) "Fase",DECODE(fcr.status_code,'X','Dihentikan', 'C','Normal','D','Dibatalkan','E','Error','G','Peringatan','Q','Terjadwal','R','Normal','W ','Jeda','Tidak Yakin') "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 "Berlalu"FROM (PILIH /*+ indeks (fcr1 FND_CONCURRENT_REQUESTS_N3) */fcr1.request_idFROM fnd_concurrent_requests fcr1W DI SINI 1=1MULAI DENGAN fcr1.request_id =&request_id--HUBUNGKAN OLEH SEBELUMNYA fcr1.parent_request_id =fcr1.request_id) x,CONNECT OLEH SEBELUMNYA fcr1.request_id =fcr1.parent_request_id) x,fnd_concurrent_requests fcr_programs_fnd_ x.request_idAND fcr.concurrent_program_id =fcp.concurrent_program_idDAN fcr.program_application_id =fcp.application_idAND fcp.application_id =fcptl.application_idAND fcp.concurrent_program_id =fcptl.concurrent_program_idAND fcptl. 'US'LANGUAGE>B o temukan sid dari id permintaan
pilih 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_id dan p.SPID =fcr.Oracle_process_iddan s.process =fcr.OS_PROCESS_IDdan s.inst_id =p.inst_iddan p.inst_id request_id =fcr.request_id;Untuk menemukan semua hal secara detail dari id permintaan/kueri tertentu untuk menemukan detail permintaan bersamaan/cara memeriksa status permintaan bersamaan dari backend/ kueri untuk menemukan program bersamaan waktu
setel halaman 100;col format request_class_application_id 99999999 heading 'REQUEST_CLASS|APP_ID'col format os_process_id a8col format application_short_name a5col format request_start_date a18 heading 'REQUEST DATE'col format aktual_start_date heading a18 heading 'START DATE_format colpletion_col aktual_comp --pilih r.REQUEST_ID,u.user_name, decode(r.PHASE_CODE,'C', 'Complete','P', 'Pending', 'R', 'Running', r.PHASE_CODE) phase,decode(r .STATUS_CODE, 'C', 'Normal','I' ,'Normal','R' ,'Normal','Q', 'Standby', 'E' ,'Error', 'X' ,'Dihentikan' ,'W', 'Paused' , r.STATUS_CODE) status,r.PRIORITY,decode(r.HOLD_FLAG,'N','"NOT on hold"','Y','"ON HOLD"',r. (untuk 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.RESPONSID_quest_APPPPCID.RE_name r.REQUESTED_START_DATE,'DD-MO T-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,'"Still Running"',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') "Waktu Berjalan",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) Lacak,dekode(f.run_alone_flag, 'N', '"NOT Alone"', 'Y', '"RUN ALONE"', f.run_alone_flag) Sendiri, r.ARGUMENT_TEXT Parameter, r.LOGFILE_NAMEdari 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 q =dimana r.RAM_user_reap RRENT_PROGRAM_IDdan f.EXECUTABLE_ID=e.EXECUTABLE_IDdan v.responsibility_id =r.responsibility_idand q.request_class_id (+)=r.concurrent_request_class_idand r.request_id =&reqid;Sql untuk menemukan permintaan Tertunda di semua Manajer Bersamaan/kueri untuk menemukan permintaan bersamaan yang tertunda
pilih 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 ='Saya'dan a.hold_flag !='Tanggal_mulai dan tanggal_permintaan <=.concurrent_queue_id =b.concurrent_queue_iddan a.control_code adalah null--dan a.concurrent_queue_name !='FNDCRM' dan a.concurrent_queue_name tidak dalam ('FNDCRM')urutan berdasarkanrequest_id, b.user_concurrent_queue_name/Cara menemukan pengelola mana yang menjalankan ID permintaan/kueri Anda untuk menemukan pengelola serentak untuk program serentakm
Format OsId Kolom A7Column Format Oracle_Process_ID 99999Column Concurrent_Queue_Name Format A20Column Log Format A25Column Started_At Format A20Set Head OffSet Verifikasi OffSet Echo OffPilih ' || Nama_Queue_Serentak ||' manajer bersamaan menjalankan permintaan Anda dari',to_char(Actual_Start_date, ' SEN-DD-YY HH:MI:SS AM') || ' - ke - ' ||ke_char(Tanggal_COMPLETION_Actual, 'SEN-DD-YY HH:MI:SS AM'),'The ' || Nama_Queue_Serentak ||' file log manajer bersamaan adalah ' || P.Logfile_Name,'Permintaan file log adalah ' || 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.Application_ID )And R.Controlling_Manager =Untuk menemukan Riwayat program ID Permintaan
setel ukuran garis 250col format tanggal_permintaan a15col format tanggal_mulai_permintaan a15col format tanggal_mulai_aktual a15col format tanggal_penyelesaian_aktual a15col format argumen_teks a70col Format berlalu 9999.99pilih * dari (pilih a.request_id, a.parent_request_id,DECODE(a.phase_code,'C','Completed'' ,'Saya','Tidak Aktif','P','Tertunda','R','Berjalan') || ' ' ||DECODE(a.status_code,'A','Waiting','B',' Melanjutkan','C','Normal','D','Dibatalkan','E','Error','G','Peringatan','H','Ditahan','I',' Normal ','M','Tidak Ada Manajer','P','Terjadwal','Q','Siaga','R',' Normal','S','Ditangguhkan','T','Berhenti' ,'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 di mana a.concurrent_program_id_id=(pilihan program_id st_id=&1)---(nvl(actual_completion_date,sysdate) - actual_start_date)*1440> 10order by a.request_id desc) di mana rownum <100;Kueri untuk memeriksa riwayat program berjalan bersamaan
judul offset ukuran garis 180set ukuran halaman 60set halaman baru 0set jeda offset termout judul 'Laporan Analisis CM' skip1col format conc_que a15 heading "Conc Queue"col format nama pengguna a12 heading "Peminta"col format permintaan 99999999 heading "Req ID"col format tanggal a9 heading "Date"col astart format a8 heading "ActSt|Time"col format acomp heading a8 "ActEnd|Time"col rtime format 99,999 heading "ExTme|(Sec)"col wtime format 99,999 heading "WtTme|(Sec)"col pname1 format a40 heading "Short|Name"col pname2 format a65 heading "Prog Name"col format argumen a25 heading "Arguments"selecttrunc(actual_start_date) sdate,request_id reqid,user_name,to_char(actual_start_date,'HH24:MI:SS') dimulai, to_char(tanggal_penyelesaian_aktual,'HH24:MI:SS') acomp,((tanggal_mulai_aktual - tanggal_mulai_diminta)*60*60*24) waktu,((tanggal_penyelesaian_aktual - tanggal_mulai_aktual)*60*60*24) waktu,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 antara to_date('&start_date', 'DD-MON-YYYYSS')&DD_date'H24:MI_date -SEN-YYYY HH24:MI:SS')atau tanggal_penyelesaian_aktual antara tanggal_to_('&start_dte', 'DD-MON-YYYY HH24:MI:SS') dan tanggal_to_('&tanggal_akhir', 'DD-MON-YYYY HH24:MI:SS '))anduser_concurrent_program_name seperti '&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_byprogramid in('ACTIVATE','ABORT','DEACTIVATE','VERIFY')pesan sebelum tanggal_mulai_aktual;Kueri untuk menemukan Permintaan yang berjalan di Manajer Bersamaan/ cara memeriksa permintaan yang berjalan bersamaan dari kueri status program backend/bersamaan di aplikasi Oracle
mengatur halaman 58mengatur ukuran garis 79Format Permintaan Kolom 999999Format Pemohon Kolom A10Format Orcl Kolom A7Format Program Kolom A10Format Mulai Kolom A14Format Pengelola Kolom A11Format LN Kolom a10Permintaan Kolom HEADING 'Request|ID 'Column Requestor'Orcl'Column HEADING'Requestor'Column HEADING' Column Started HEADING 'Start 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_Program'Concurrent_Name_Concurrent_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 )Dan 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' dan Status_Code ='R'Order By Actual_Start_Date, Request_Start_Date,Kueri untuk menemukan Permintaan Penghentian di Manajer Serentak
mengatur halaman 58mengatur ukuran garis 79Format Permintaan Kolom 999999Format Pemohon Kolom A10Format Orcl Kolom A7Format Program Kolom A10Format Mulai Kolom A14Format Pengelola Kolom A11Format LN Kolom a10Permintaan Kolom HEADING 'Request|ID 'Column Requestor'Orcl'Column HEADING'Requestor'Column HEADING' Column Started HEADING 'Start at'Column MANAGER HEADING 'Controlling|Manager'Column LN HEADING 'Logfile|name'Column Program HEADING 'Program'Pilih Request_Id Reqst, Pemohon Nama_Pengguna, Oracle_Nama Pengguna Orcl,Fcr.Logfile_Name_Name LN,Concurrent_Name_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_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!