Oracle
 sql >> Base de données >  >> RDS >> Oracle

Top 30 des requêtes de gestion simultanée les plus utiles

Table des matières

  • Que sont les gestionnaires simultanés
  • Top 30 des requêtes de gestion simultanée les plus utiles
    • Requête pour vérifier le paramétrage de l'ICM dans l'environnement Concurrent Manager
    • Requête pour vérifier les détails de tous les gestionnaires simultanés activés
    • Comment vérifier le type de demande et les programmes pour les gestionnaires simultanés
    • Comment vérifier/trouver l'équipe/max/min pour tous les gestionnaires simultanés
    • Requête pour vérifier toutes les valeurs de l'option de profil au niveau du site associé au gestionnaire simultané et y rechercher
    • Requête pour vérifier l'état du gestionnaire simultané depuis le backend
    • Pour vérifier toutes les tâches en cours d'exécution avec les détails de la session DB sur le nœud DB actuel
    • Pour trouver le fichier Trace pour une demande simultanée particulière
    • Pour trouver l'activité globale de l'ensemble de requêtes et ses différents délais d'exécution des requêtes
    • Pour trouver le sid à partir de l'identifiant de la requête
    • Pour trouver toutes les choses en détail à partir de l'identifiant de demande particulier/requête pour trouver les détails de la demande simultanée/comment vérifier l'état de la demande simultanée à partir de backend/requête pour trouver le temps d'exécution d'un programme simultané
    • Sql pour trouver la demande en attente dans tous les gestionnaires simultanés/requête pour trouver les demandes simultanées en attente
    • Comment trouver quel gestionnaire exécute votre ID de requête/requête pour trouver un gestionnaire simultané pour un programme simultané
    • Pour trouver l'historique du programme Request ID
    • Requête pour vérifier l'historique d'exécution des programmes simultanés
  • Requête pour trouver la requête en cours d'exécution dans le gestionnaire simultané/comment vérifier la requête simultanée en cours d'exécution à partir du backend/requête d'état du programme simultané dans les applications oracle
    • Requête pour trouver les demandes de fin dans le gestionnaire simultané
    • Requête pour rechercher les demandes suspendues dans le gestionnaire simultané
    • Vérifiez le journal et le fichier de sortie créé à partir d'une certaine période
    • Requête pour trouver l'ID du programme simultané à partir d'une requête simultanée
    • Détail des 100 dernières exécutions du programme concurrent
    • Pour trouver le fichier journal /outfile/nom du nœud pour la requête particulière
    • Vérifiez qu'ICM s'exécute sur quel nœud
    • Vérifier l'ID de processus du système d'exploitation/nœud cible pour CM
    • Pour connaître le statut correct de la demande simultanée depuis le back-end
    • Vérifiez le texte de complétion de la requête simultanée
    • Pour vérifier les processus réels et cibles pour le responsable interne
    • Pour vérifier les processus réels et cibles pour le gestionnaire standard
    • Pour vérifier les objets invalides liés à FND
    • Requête pour vérifier si une règle de spécialisation définie pour un gestionnaire simultané inclut/exclut le programme simultané en question.
    • Pour chaque responsable, obtenez le nombre de requêtes en attente et en cours d'exécution dans chaque file d'attente :
    • Pour obtenir des programmes simultanés de longue durée :
    • Vérifier les incompatibilités entre les programmes/requête pour trouver le programme incompatible d'un concurrent La requête ci-dessous peut être utilisée pour trouver toutes les incompatibilités dans un instance d'application.
    • OBTENIR L'EXÉCUTION DE L'INSCRIPTION SQL ACTUELLE POUR UNE DEMANDE CONCURRENTE
    • Annulation de la demande simultanée/mise à jour de l'état de la demande simultanée depuis le backend
    • Comment soumettre un programme concurrent à l'aide de l'utilitaire CONCSUB du système d'exploitation
  • comment activer la trace pour une requête simultanée en cours d'exécution
  • Recherchez les requêtes simultanées planifiées :
  • Historique des demandes simultanées qui ont généré une erreur au cours des 2 derniers jours
  • requête pour vérifier la trace activée pour le programme simultané
  • Cours recommandés

Que sont les gestionnaires simultanés ?

  • Les gestionnaires simultanés sont les contrôleurs du traitement en arrière-plan pour les applications Oracle.
  • La fonction principale des gestionnaires simultanés est de réguler et de contrôler les demandes de processus en fonction d'un ensemble de règles.
  • Il s'agit d'une technique utilisée pour exécuter simultanément en arrière-plan des programmes non interactifs dépendant des données.
  • Oracle Applications est fourni avec des gestionnaires prédéfinis, notamment le gestionnaire simultané interne (ICM), le gestionnaire standard, le gestionnaire de résolution des conflits (CRM) et les gestionnaires de transactions (TM).
  • Le gestionnaire simultané interne contrôle tous les autres gestionnaires simultanés qui sont des processus du système d'exploitation qui interrogent les demandes.
  • Dans Applications, vous pouvez également créer n'importe quel nombre de gestionnaires simultanés pour gérer des types particuliers de demandes ou de programmes et les spécialiser en fonction des besoins de votre entreprise
  • L'ICM (Internal Concurrent Manager) contrôle tous les autres gestionnaires simultanés.
  • Le responsable standard accepte toutes les demandes. Il n'a pas de règles de spécialisation prédéfinies et est actif tout le temps. Il n'est pas recommandé d'ajouter des règles de spécialisation au gestionnaire standard car cela est courant de causer des problèmes.
  • Le responsable de la résolution des conflits résout les conflits, tels que les incompatibilités de demandes.

Le dépannage de Concurrent Manager est une partie importante de l'administration des applications Oracle. Voici les 30 requêtes les plus utiles de Concurrent Manager pour vous aider à résoudre les problèmes. Connectez-vous simplement à la base de données Oracle avec un utilisateur approprié comme des applications pour obtenir tous les détails

Top 30 des requêtes de gestion simultanée les plus utiles

Requête pour vérifier le paramétrage de l'ICM dans l'environnement Concurrent Manager

select 'PCP' "name", valuefrom apps.fnd_env_contextwhere variable_name ='APPLDCP' andconcurrent_process_id =(select max(concurrent_process_id)from apps.fnd_concurrent_processes where concurrent_queue_id =1)UNION ALLselect 'RAC' "name", decode(count(count( *), 0, 'N', 1, 'N', 'Y') "value" from V$threadUNION ALLselect 'GSM' "name", NVL(v.profile_option_value, 'N') "value" from 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 name, value from apps.fnd_concurrent_queue_paramswhere queue_application_id =0 and concurrent_queue_id =1;

Requête pour vérifier les détails de tous les gestionnaires simultanés activés

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 "Secondaire",fcq.cache_size "Taille du cache",fcp.concurrent_processor_name "Bibliothèque de programmes",sleep_secondsfrom apps.fnd_concurrent_queues_vl fcq, apps.fnd_application fa, apps.fnd_concurrent_processors fcpwhere fcq.application_id =fa.application_idand fcq.processor_application_id =fcp.application_idand fcq.concurrent_processor_id =fcp.concurrent_processor_id et fcq.enabled_flag='Y';

Comment vérifier le type de demande et les programmes pour les gestionnaires simultanés

format d'action de colonne a10format de gestionnaire de colonne a20format d'objet de colonne a20format de type de colonne a10set pages 0set lines 400select q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.signifiant "Action",l2.signifiant "Type", p .user_concurrent_program_name "Objet" de 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 l2où q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='P 'et 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' and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q. application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Gestionnaire", l1.signifiant "Action",'Application' "Type", a.application_name "Objet"de 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 nulland c.type_application_id =a.application_idand l1.lookup_code =c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE'UNION ALLselect q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.signifiant "Action", l2.signifiant "Type", x.complex_rule_name "Objet" des applications. 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_idand q.application_id =c.queue_application_idand c.type_code ='C'et c.type_id =x. complex_rule_idand c.type_application_id =x.application_idand l1.lookup_code =c.include_flag and l1.lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='C'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q.application_id, q .concurrent_queue_name,q.user_concurrent_queue_name "Gestionnaire", l1.signifiant "Action", l2.signifiant "Type", r.request_class_name "Objet"de apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q, apps.fnd_concurrent_request_class r,apps.fnd_lookups l1 , apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_id et q.application_id =c.queue_application_id et c.type_code ='R' et c.type_id =r.request_class_id et c.type_application_id =r.application_id et l1.lookup_code =c.include_flag et l1 .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.signifiant "Action", l2.signifiant " Type", o.oracle_username "Objet" de 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_id =c.concurrent_queue_idand q.application_id =c.queue _application_idand c.type_code ='O'and c.type_id =o.oracle_idand l1.lookup_code =c.include_flag and l1.lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='O'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q .application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Gestionnaire", l1.signifiant "Action", l2.signifiant "Type", u.user_name "Objet"de apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q, apps.FND_OAM_FNDUSER_VL u, apps.fnd_lookups l1, apps.fnd_lookups l2où q.concurrent_queue_id =c.concurrent_queue_id et q.application_id =c.queue_application_id et c.type_code ='U'et c.type_id =u.user_id et l1.lookup_code =c.include_flag et l1.lookup_type ='INCLUDE_EXCLUDE'and l2.lookup_code ='U'and l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.signifiant "Action", l2.signifiant "Type", to_char(c.type_id) "Objet"de 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 ')et l1.lookup_code =c.include_flag et l1.lookup_type ='INCLUDE_EXCLUDE'et l2.lookup_code =c.type_code et l2.lookup_type ='CP_SPECIAL_RULES';

Comment vérifier/trouver l'équipe/max/min pour tous les managers simultanés

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_seconds,fcqs.service_parametersfrom apps.fnd_concurrent_queues_vl 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_id_idand fcqs.concurrent_time_period_idand fcqs.concurrent_time_period_id =ftp. application_id ;

Requête pour vérifier toutes les valeurs de l'option de profil au niveau du site lié au gestionnaire simultané et la recherche

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_VL fpo,apps.FND_PROFILE_OPTION_VALUES fpov,apps.fnd_application vers où fpo .application_id =0and fpo.site_enabled_flag ='Y'and (fpo.profile_option_name like 'CONC_%'or fpo.profile_option_name like 'FS_%'or fpo.profile_option_name like 'PRINTER%'or fpo.profile_option_name in ('EDITOR_CHAR', ' FNDCPVWR_FONT_SIZE', 'MAX_PAGE_LENGTH', 'APPLWRK')) et fpo.profile_option_id =fpov.profile_option_id et fpo.application_id =fpov.application_id et fpo.application_id =fa.application_id et fpov.level_id =10001 ;

Requête pour vérifier l'état du gestionnaire simultané à partir du 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_processes fcp1where fcp1.concurrent_queue_id =q.concurrent_queue_idand fcp1.queue_application_id =q. application_idand ( fcp1.process_status_code in ('C','M')or ( fcp1.process_status_code in ('A', 'D', 'T')et existe (sélectionnez 1depuis gv$sessionoù 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(* ) de 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') /* Connexion ou migration */or ( fcp2.process_status_code in ('A ', 'D', 'T') et existe (sélectionnez 1 dans gv$sessionoù fcp2.session_id =au dsid)))) actual_processes,'' message, 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 s.service_id =q.manager_typeUNION/* Besoin de couvrir le cas où un gestionnaire n'a pas de lignes dans FND_CONCURRENT_PROCESSES. Les jointures externes ne suffiront pas. */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_STARTED', 'DOWN') service_status,q.max_processes target_processes,0 actual_processes,' ' message, 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 s.service_id =q.manager_typeand not exists (select 1from apps.fnd_concurrent_processes pwhere process_status_code in ('C' ,'M','A','D','T')et q.concurrent_queue_id =p.concurrent_queue_idet q.application_id =p.queue_application_id);

Pour vérifier toutes les tâches en cours d'exécution avec les détails de la session de base de données sur le nœud de base de données actuel

set lines 200set pages 200column PHASE titre 'Phase' format A8colonne STATUS titre 'Status' format A8colonne PROGRAM titre 'Program Name' format A25colonne REQUESTOR titre 'Requestor' format A9column START_TIME titre 'Start Time' format A15column RUN_TIME justifier left titre ' Runtime(m)' format 9999.99 colonne en-tête OSPID format 'OSPID' a5 colonne en-tête SID 'DBSID' format 99999 spool crrunning.lstselect fcrv.request_id REQUEST,decode(fcrv.phase_code,'P','Pending','R','Running ','I','Inactif','Terminé')PHASE,decode(fcrv.status_code, 'A','En attente', 'B','Reprise', 'C','Normal', 'F', 'Planifié','G','Avertissement', 'H','En attente', 'I','Normal', 'M','Pas de gestionnaire','Q','Veille', 'R', 'Normal', 'S','Suspendu', 'T','Terminé','U','Désactivé', 'W','Pause', 'X','Terminé','Z','En attente ',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 ,round(((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_PIDfrom apps.fnd_conc_req_summary_v fcrv,apps.fnd_concurrent_requests fcr,v$session vs,v $process vpwhere fcrv.phase_code ='R'and fcrv.request_id =fcr.request_idand fcr.oracle_process_id =vp.spidand vs.paddr =vp.addrorder by PHASE, STATUS, REQUEST desc/

Pour trouver le fichier de trace pour une requête simultanée particulièreer

column format traceid a8column format tracename a80column user_concurrent_program_name format a40column execname format a15column enable_trace format a12set lines 80set pages 22set head offSELECT '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. Nom :'||prog.user_concurrent_program_name,'Nom du fichier :'||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 =&requestet 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. program_application_id =prog.application_idand prog.application_id =execname.application_idand prog.executable_id=execname.executable_id ;

Pour trouver l'activité globale de l'ensemble de requêtes et ses différents délais d'exécution des requêtes

set linesize 300col Format "Nom du programme" a50col Format écoulé 9999.99col Format "ID de processus" a10col Format REQUEST_DATE a15col Format ACTUAL_START_DATE a15col Format REQUEST 999999999col Format PARENT 999999999col format argument_text a50SELECT /*+ ORDERED USE_NL(x fcr fcp fcptl)*/ fcr.request_id "REQUEST", fcr.parent_request_id "PARENT",fcr.oracle_process_id "ID de processus",fcptl.user_concurrent_program_name "Nom du programme",fcr.argument_text,DECODE(fcr.phase_code,'X', 'Terminé','E ', 'Erreur','C','Terminé','P','En attente','R','En cours',phase_code) "Phase",DECODE(fcr.status_code,'X','Terminé', 'C','Normal','D','Annulé','E','Erreur','G','Avertissement','Q','Planifié','R','Normal','W ','En pause','Pas sûr') "Statut",--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 "Écoulé" DE (SELECT /*+ index (fcr1 FND_CONCURRENT_REQUESTS_N3) */fcr1.request_idFROM fnd_concurrent_requests fcr1W ICI 1=1COMMENCEZ PAR fcr1.request_id =&request_id--CONNECT BY PRIOR fcr1.parent_request_id =fcr1.request_id) x,CONNECT BY PRIOR fcr1.request_id =fcr1.parent_request_id) x,fnd_concurrent_requests fcr,fnd_concurrent_programs fcp,fnd_concurrent_programs_tl fcptlWHERE fc =r 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_idAND fcptl.LANGUAGE ='US'ORDER BY 1

T o trouver le sid à partir de l'identifiant de la requête

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_idand p.addr =s.paddrand fv. request_id =fcr.request_id ;

Pour trouver toutes les choses en détail à partir de l'identifiant de demande particulier/requête pour trouver les détails de la demande simultanée/comment vérifier l'état de la demande simultanée à partir du backend/requête pour trouver le programme simultané rune heure

 set pages 100 ;col request_class_application_id format 99999999 titre 'REQUEST_CLASS|APP_ID'col os_process_id format a8col application_short_name format a5col required_start_date format a18 titre 'REQUEST DATE'col actual_start_date format a18 titre 'START DATE'col actual_completion_date format a18 titre 'COMPLETE DATE' --select 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', 'Veille', 'E' ,'Erreur', 'X' ,'Terminé' ,'W', 'Paused' , r.STATUS_CODE) status,r.PRIORITY,decode(r.HOLD_FLAG,'N','"NOT on hold"','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.RESPONSIBILITY_name, r.REQUEST_CLASS_APPLICATION_ID, q.request_class_name, r.PARENT_REQUEST_ID,to_char( r.REQUESTED_START_DATE,'JJ-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,'"Toujours en cours d'exécution"',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') "Temps d'exécution",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) Trace,decode(f.run_alone_flag, 'N', '"NOT Alone"', 'Y', '"RUN ALONE"', f.run_alone_flag) Seul, r.ARGUMENT_TEXT Paramètres,r.LOGFILE_NAMEde 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 qoù u.user_id =r.requested_byand p.application_id =fnd_PROGRAM_APPLICATION_IDand r. RRENT_PROGRAM_IDet f.EXECUTABLE_ID=e.EXECUTABLE_IDet v.responsibility_id =r.responsibility_idet q.request_class_id (+)=r.concurrent_request_class_idet r.request_id =&reqid;

Sql pour rechercher les requêtes en attente dans tous les gestionnaires simultanés/requête pour rechercher les requêtes simultanées en attente

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.requested_start_date <=sysdateand a .concurrent_queue_id =b.concurrent_queue_idand a.control_code is null--and a.concurrent_queue_name !='FNDCRM'and a.concurrent_queue_name not in ('FNDCRM')order byrequest_id, b.user_concurrent_queue_name/

Comment trouver quel gestionnaire exécute votre ID de demande/requête pour trouver un gestionnaire simultané pour le programme simultaném

Colonne OsId Format A7Colonne Oracle_Process_ID Format 99999Colonne Concurrent_Queue_Name Format A20Colonne Log Format A25Colonne Started_At Format A20Set Head OffSet Vérifier OffSet Echo OffSelect'The ' || Concurrent_Queue_Name ||' concurrent manager a exécuté votre requête de',to_char(Actual_Start_date, ' MON-DD-YY HH:MI:SS AM') || ' - à - ' ||to_char(Actual_COMPLETION_date, 'MON-DD-YY HH:MI:SS AM'),'The ' || Concurrent_Queue_Name ||' le fichier journal du gestionnaire simultané est ' || P.Logfile_Name,'Le fichier journal de la demande est ' || 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 =P.Concurrent_Process_IDAnd R.Phase_Code ='C'And Request_ID =&Request_ID;set head on 

Pour trouver l'historique du programme Request ID

set linesize 250col format request_date a15col format request_start_date a15col format actual_start_date a15col format actual_completion_date a15col format argument_text a70col Format écoulé 9999.99select * from (select a.request_id, a.parent_request_id,DECODE(a.phase_code,'C','Completed' ,'I','Inactif','P','En attente','R','En cours') || ' ' ||DECODE(a.status_code,'A','En attente','B',' Reprise','C','Normal','D','Annulé','E','Erreur','G','Avertissement','H','En attente','I',' Normal ','M','Aucun gestionnaire','P','Planifié','Q','Veille','R',' Normal','S','Suspendu','T','Terminé' ,'U','Désactivé','W','Pause','X','Terminé','Z',' En attente') "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 reque st_id=&1)---(nvl(actual_completion_date,sysdate) - actual_start_date)*1440> 10order by a.request_id desc) where rownum <100 ;

Requête pour vérifier l'historique d'exécution des programmes simultanés

ttitle offset linesize 180set pagesize 60set newpage 0set pause offset termout onttitle 'CM Analysis Report' skip1col conc_que format a15 header "Conc Queue"col user_name format a12 header "Requestor"col reqid format 99999999 header "Req ID"col sdate format a9 en-tête "Date"col astart format a8 en-tête "ActSt|Time"col acomp format a8 en-tête "ActEnd|Time"col rtime format 99 999 en-tête "ExTme|(Sec)"col wtime format 99 999 en-tête "WtTme|(Sec)"col pname1 format a40 titre "Short|Name"col pname2 format a65 titre "Prog Name"col args format a25 titre "Arguments"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 - requests_start_date)*60*60*24) wtime,((actual_completion_date - actual_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:SS')and to_date('&end_date', 'DD -MON-YYYY HH24:MI:SS')ouactual_completion_date entre to_date('&start_dte', 'DD-MON-YYYY HH24:MI:SS')et 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_id.application_id not_ prog.program_id. in('ACTIVATE','ABORT','DEACTIVATE','VERIFY')order byactual_start_date ;

Requête pour trouver la demande en cours d'exécution dans le gestionnaire simultané/comment vérifier la demande simultanée en cours d'exécution à partir de la requête d'état du programme principal/concurrent dans les applications Oracle

set pages 58set linessize 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 'Commencé à'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_Queue_Name Manager,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_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 )Et 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, Request_Id/

Requête pour trouver les demandes de fin dans le gestionnaire simultané

set pages 58set linessize 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_Queue_Name Manager,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_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_date  

Run 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 =&req

Check 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_PROCESSES

To 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.paddr 

Enable 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 Manager

Recommended  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 Dataguard

Recommended 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!