Wednesday, February 26, 2025

OPP unsubscribe

 


 

Part 1:  - Please find the troubleshooting/solution for resolving the issues specific to OPP. Please find the symptoms, troubleshooting and solution for resolving the OPP issues.

 


 

1.     Gather the concurrent target processes ID’s

SELECT fcp.concurrent_process_id

FROM apps.fnd_concurrent_queues fcq, apps.fnd_concurrent_processes fcp

WHERE concurrent_queue_name = 'FNDCPOPP'

AND fcq.concurrent_queue_id = fcp.concurrent_queue_id

AND fcq.application_id = fcp.queue_application_id

AND fcp.process_status_code = 'A'

 

 


2.     Validate the concurrent target processes ID’s from the queue

select name

from applsys.AQ$FND_CP_GSM_OPP_AQTBL_S

order by name

 


Solution:

If there is any discrepancy between the rows, we need to unsubscribe the processes from the OPP queue. The right and active processes are from query#1.

 

exec fnd_cp_opp_ipc.unsubscribe(‘Concurrent target processes ID’);

 

exec fnd_cp_opp_ipc.unsubscribe(‘824721’);

 

exec fnd_cp_opp_ipc.unsubscribe(‘824722’);

How To Restart Output Post Processor (OPP)

 1.  Restarting OPP can be done using adcmctl.sh script  (to start/stop all managers) as there is no specific script for restarting just the OPP manager.

 

2.  The service can also be started from E-Business Application via System Administrator responsibility -> Concurrent -> Manager -> Administer.

     Then select "Output Post Processor" and click on the "Restart" button.


3.  In addition the service an be started and stopped via Oracle Applications Manager.

     Navigate to System Administration -> Oracle Applications Manager -> Concurrent Managers.

    Then select Output Post Processor -> Next to View Processes select Start or Stop.

 

4.  To stop the OPP service you can kill the OPP process from command line by identifying the OPP process in Linux.
a.  Login to APPTIER server and identify the OPP processes.
b.  ps -ef |grep FNDOPP | grep -v grep
c.  Kill OPP processes:
e.  kill -9 PID

 

5.  The OPP system process can be identified as follows from Forms:
a. System Administator > Concurrent -> Manager -> Administer
b. Query "Output Post Processor" -> Processes button
    Get the system id of "Output Post Processor"
c.  Then run the following command at the OS level:
    ps -ef|grep [system id]
d. kill -9 [system id] in Unix
e. System Administrator -> Concurrent -> Manager -> Administer
f. Query "Output Post Processor" -> Restart button



----



[oracle@lufRAMfebssl311 <RUN> ]$ ps -ef |grep FNDOPP | grep -v grep

oracle   3029362 3029225  0 Feb22 ?        00:03:22 /u01/install/APPS/fs1/EBSapps/comn/util/jdk64/bin/java -Doracle.xml.parser.XMLParser.ExpandEntityRef=false -Doracle.xdkjava.security.resolveEntityDefault=false -DCLIENT_PROCESSID=3029362 -Doracle.jdbc.autoCommitSpecCompliant=false -Doracle.jdbc.DateZeroTime=true -Doracle.jdbc.DateZeroTimeExtra=true -Dxdo.xliff.source=EBS -Dhttps.proxyHost=lufnonprodsquid.RAM.gov -Dhttps.proxyPort=3128 -Dhttp.proxyHost=lufnonprodsquid.RAM.gov -Dhttp.proxyPort=3128 -Dhttp.nonProxyHosts=*.nonprodpvtmt.RAMfwest.oraclevcn.com|eccprojit.RAM.gov|localhost|localhost. -Djava.awt.headless=true -server -Xmx384m -Doracle.apps.fnd.common.Pool.leak.mode=stderr:off -verbose:gc -mx3072m -Ddbcfile=/u01/install/APPS/fs1/inst/apps/SRAM1I_lufRAMfebssl311/appl/fnd/12.0.0/secure/SRAM1I.dbc -Dcpid=1086028 -Dconc_queue_id=1425 -Dqueue_appl_id=0 -Dlogfile=/u01/install/APPS/fs_ne/inst/SRAM1I_lufRAMfebssl311/logs/appl/conc/log/FNDOPP1086028.txt -DLONG_RUNNING_JVM=true -DEBS_HOSTNAME=lufRAMfebssl311 -DOVERRIDE_DBC=true -DFND_JDBC_BUFFER_MIN=1 -DFND_JDBC_BUFFER_MAX=2 oracle.apps.fnd.cp.gsf.GSMServiceController

oracle   3029363 3029225  0 Feb22 ?        00:02:59 /u01/install/APPS/fs1/EBSapps/comn/util/jdk64/bin/java -Doracle.xml.parser.XMLParser.ExpandEntityRef=false -Doracle.xdkjava.security.resolveEntityDefault=false -DCLIENT_PROCESSID=3029363 -Doracle.jdbc.autoCommitSpecCompliant=false -Doracle.jdbc.DateZeroTime=true -Doracle.jdbc.DateZeroTimeExtra=true -Dxdo.xliff.source=EBS -Dhttps.proxyHost=lufnonprodsquid.RAM.gov -Dhttps.proxyPort=3128 -Dhttp.proxyHost=lufnonprodsquid.RAM.gov -Dhttp.proxyPort=3128 -Dhttp.nonProxyHosts=*.nonprodpvtmt.RAMfwest.oraclevcn.com|eccprojit.RAM.gov|localhost|localhost. -Djava.awt.headless=true -server -Xmx384m -Doracle.apps.fnd.common.Pool.leak.mode=stderr:off -verbose:gc -mx3072m -Ddbcfile=/u01/install/APPS/fs1/inst/apps/SRAM1I_lufRAMfebssl311/appl/fnd/12.0.0/secure/SRAM1I.dbc -Dcpid=1086029 -Dconc_queue_id=1425 -Dqueue_appl_id=0 -Dlogfile=/u01/install/APPS/fs_ne/inst/SRAM1I_lufRAMfebssl311/logs/appl/conc/log/FNDOPP1086029.txt -DLONG_RUNNING_JVM=true -DEBS_HOSTNAME=lufRAMfebssl311 -DOVERRIDE_DBC=true -DFND_JDBC_BUFFER_MIN=1 -DFND_JDBC_BUFFER_MAX=2 oracle.apps.fnd.cp.gsf.GSMServiceController

[oracle@lufRAMfebssl311 <RUN> ]$ kill -9 3029362 3029363

[oracle@lufRAMfebssl311 <RUN> ]$ ps -ef |grep FNDOPP | grep -v grep

[oracle@lufRAMfebssl311 <RUN> ]$ ps -ef |grep FNDOPP | grep -v grep

[oracle@lufRAMfebssl311 <RUN> ]$ ps -ef |grep FNDOPP | grep -v grep

oracle   2672797 3029225 10 15:41 ?        00:00:03 /u01/install/APPS/fs1/EBSapps/comn/util/jdk64/bin/java -Doracle.xml.parser.XMLParser.ExpandEntityRef=false -Doracle.xdkjava.security.resolveEntityDefault=false -DCLIENT_PROCESSID=2672797 -Doracle.jdbc.autoCommitSpecCompliant=false -Doracle.jdbc.DateZeroTime=true -Doracle.jdbc.DateZeroTimeExtra=true -Dxdo.xliff.source=EBS -Dhttps.proxyHost=lufnonprodsquid.RAM.gov -Dhttps.proxyPort=3128 -Dhttp.proxyHost=lufnonprodsquid.RAM.gov -Dhttp.proxyPort=3128 -Dhttp.nonProxyHosts=*.nonprodpvtmt.RAMfwest.oraclevcn.com|eccprojit.RAM.gov|localhost|localhost. -Djava.awt.headless=true -server -Xmx384m -Doracle.apps.fnd.common.Pool.leak.mode=stderr:off -verbose:gc -mx3072m -Ddbcfile=/u01/install/APPS/fs1/inst/apps/SRAM1I_lufRAMfebssl311/appl/fnd/12.0.0/secure/SRAM1I.dbc -Dcpid=1086744 -Dconc_queue_id=1425 -Dqueue_appl_id=0 -Dlogfile=/u01/install/APPS/fs_ne/inst/SRAM1I_lufRAMfebssl311/logs/appl/conc/log/FNDOPP1086744.txt -DLONG_RUNNING_JVM=true -DEBS_HOSTNAME=lufRAMfebssl311 -DOVERRIDE_DBC=true -DFND_JDBC_BUFFER_MIN=1 -DFND_JDBC_BUFFER_MAX=2 oracle.apps.fnd.cp.gsf.GSMServiceController

oracle   2672824 3029225  9 15:41 ?        00:00:02 /u01/install/APPS/fs1/EBSapps/comn/util/jdk64/bin/java -Doracle.xml.parser.XMLParser.ExpandEntityRef=false -Doracle.xdkjava.security.resolveEntityDefault=false -DCLIENT_PROCESSID=2672824 -Doracle.jdbc.autoCommitSpecCompliant=false -Doracle.jdbc.DateZeroTime=true -Doracle.jdbc.DateZeroTimeExtra=true -Dxdo.xliff.source=EBS -Dhttps.proxyHost=lufnonprodsquid.RAM.gov -Dhttps.proxyPort=3128 -Dhttp.proxyHost=lufnonprodsquid.RAM.gov -Dhttp.proxyPort=3128 -Dhttp.nonProxyHosts=*.nonprodpvtmt.RAMfwest.oraclevcn.com|eccprojit.RAM.gov|localhost|localhost. -Djava.awt.headless=true -server -Xmx384m -Doracle.apps.fnd.common.Pool.leak.mode=stderr:off -verbose:gc -mx3072m -Ddbcfile=/u01/install/APPS/fs1/inst/apps/SRAM1I_lufRAMfebssl311/appl/fnd/12.0.0/secure/SRAM1I.dbc -Dcpid=1086745 -Dconc_queue_id=1425 -Dqueue_appl_id=0 -Dlogfile=/u01/install/APPS/fs_ne/inst/SRAM1I_lufRAMfebssl311/logs/appl/conc/log/FNDOPP1086745.txt -DLONG_RUNNING_JVM=true -DEBS_HOSTNAME=lufRAMfebssl311 -DOVERRIDE_DBC=true -DFND_JDBC_BUFFER_MIN=1 -DFND_JDBC_BUFFER_MAX=2 oracle.apps.fnd.cp.gsf.GSMServiceController

[oracle@lufRAMfebssl311 <RUN> ]$


Friday, February 21, 2025

GSS Troubleshooting

 $TFA_HOME/bin/tfactl diagcollect -srdc dbperf -from "02/15/2025 22:00:00" -to "02/16/2025 10:00:00"

Enter the Database Name [Required for this SRDC] : EBSDE3

Is the issue related to a specific Plugable Database? [Y|N]  [Required for this                                                                                              SRDC]: Y

Enter the PDB Name  [Required for this SRDC] : DRAM5I

Start time when the performance was bad:  2025-02-15 22:00:00

Stop time when the performance was bad:   2025-02-16 10:00:00

For comparison, it is useful to gather data from another period with similar load where problems are not seen. Typically this is likely to be the same time period on a previous day. To compare to the same time period on a previous day enter the number 02 days ago you wish to use. [<RETURN> to provide other time range] :

Start time when the performance was good 2025-02-13 22:00:00

Stop time when the performance was good 2025-02-14 10:00:00

Has any SQL been identified to contribute to the performance issue?[Y|N]  [Required for this SRDC]: N

Do you wish to take an AWR Dump as part of this collection?

 NOTE: AWR Dump Can add signification size to the collection and increase the time necessary for the collection to complete. [Y|N] [Required for this SRDC]: Y

Ending AWR snapshot not needed, existing AWR snapshot exists within time window.

Found 14 snapshot(s) in Bad Performance time range for database EBSDE3

Found 14 snapshot(s) in Baseline Performance time range for EBSDE3

"Automatic Workload Repository (AWR) is a licensed feature. Refer to My Oracle Support Document ID 1490798.1 for more information"


Components included in this collection: DATABASE CHMOS CHA OS INSIGHTS SOSREPORT


Preparing to execute support diagnostic scripts.

 Executing DB Script srdc_db_lfsdiag.sql on EBSDE3 with timeout of 120 seconds...


Tuesday, February 11, 2025

ETCC CheckMTpatch Issue

 Backup TXK_TCC_RESULTS

Truncate TXK_TCC_RESULTS

Run ETCC on all db nodes

Run ETCC on Applications Server



Friday, January 17, 2025

Incompatibilities

 SELECT

fctl.user_concurrent_program_name,

         DECODE (TO_RUN_TYPE, 'S', 'Set', 'Program') TYPE,

         DECODE (INCOMPATIBILITY_TYPE, 'G', 'Global', 'Domain')

            "Incompatibilty Type",

            fat.APPLICATION_NAME

            FROM apps.FND_CONCURRENT_PROGRAM_SERIAL fcrs,

         apps.FND_CONCURRENT_PROGRAMS_TL fctl,

         apps.FND_APPLICATION_TL fat

   WHERE     fcrs.RUNNING_APPLICATION_ID = fat.application_id

         and fctl.user_concurrent_program_name in ('Accounting Program','Create Accounting') -- CP id of the program in question

         AND fctl.CONCURRENT_PROGRAM_ID = fcrs.TO_RUN_CONCURRENT_PROGRAM_ID

         AND fctl.LANGUAGE = 'US'

         AND fat.LANGUAGE = 'US'

ORDER BY to_run_application_id, to_run_concurrent_program_id

Thursday, January 9, 2025

Mon1 Script

 [oracle@lufRAMfexanpq1-ekd5g3 ~]$ more $HOME/scripts/YE_Monitor_Running_ram.sh


LOG_FILE=$HOME/scripts/log/YE_Monitor_Running_jobs.log

. $HOME/.bash_profile > /dev/null

EMAIL_LIST="seetharam.nanubalu@RAM.gov"


PATH=/u02/app/oracle/product/19.0.0.0/dbhome_3/bin:/u02/app/oracle/product/19.0.0.0/dbhome_3/OPatch:$PATH; export PATH

ORACLE_UNQNAME=EBSST1; export ORACLE_UNQNAME

ORACLE_SID=EBSST13; export ORACLE_SID

ORACLE_HOSTNAME=lufRAMfexanpq1-ekd5g3.nonprodexadb.RAMfwest.oraclevcn.com; export ORACLE_HOSTNAME

LD_LIBRARY_PATH=/u02/app/oracle/product/19.0.0.0/dbhome_3/lib; export LD_LIBRARY_PATH

ORACLE_BASE=/u02/app/oracle; export ORACLE_BASE

OH=/u02/app/oracle/product/19.0.0.0/dbhome_3; export OH

ORACLE_HOME=/u02/app/oracle/product/19.0.0.0/dbhome_3; export ORACLE_HOME

TNS_ADMIN=/u02/app/oracle/product/19.0.0.0/dbhome_3/network/admin/EBSST1; export TNS_ADMIN


sqlplus -s / as sysdba >/dev/null <<EOF

### Connecting to a Container Database (CDB)

alter session set container=SRAM2I;

SET LINESIZE 160 PAGESIZE 200 FEEDBACK ON

SET ECHO OFF MARKUP HTML ON ENTMAP OFF SPOOL ON HEAD '' TABLE 'align=centre border=1 color:Black background:#f7f7e7'

SPOOL $LOG_FILE

PROMPT <h1>YE and Standard Concurrent Manager Status</h1>

select q.concurrent_queue_name || ' - ' || target_node qname,

       q.running_processes actual,

       q.max_processes target,

       sum(decode(r.phase_code,'R',1,0)) - sum(decode(r.status_code,'W',1,0)) running,

       sum(decode(r.phase_code,'P',1,0)) pending,

       nvl(sum(decode(r.status_code,'W',1,'H',1,'S',1,'A',1,'Z',1,0)),0) paused,

       nvl(sum(decode(r.status_code,'F',1,'Q',1,'B',1,'T',0)),0) influx,

       avg((nvl(r.actual_start_date,r.requested_start_date) - r.requested_start_date)*1440) avgqtime

  from applsys.fnd_concurrent_requests r,

       applsys.fnd_concurrent_processes p,

       applsys.fnd_concurrent_queues q

 where r.controlling_manager (+) = p.concurrent_process_id

   and p.queue_application_id = q.application_id

   and p.concurrent_queue_id = q.concurrent_queue_id

   and q.max_processes > 0

   and ((r.phase_code in ('R','P','I') and upper('N') = 'Y') or

         upper('N') != 'Y')

and q.concurrent_queue_name in( 'STANDARD','STANDARD2', 'YETSMANAGER')

 group by q.concurrent_queue_name || ' - ' || target_node, q.running_processes, q.max_processes;


PROMPT <h1> Stale Stats of FV and GL </h1>


select distinct OWNER,TABLE_NAME,PARTITION_NAME,SUBPARTITION_NAME,NUM_ROWS,LAST_ANALYZED,stale_stats from dba_tab_statistics where stale_stats='YES'

and owner in ('FV','GL') order by owner;


select distinct owner,INDEX_NAME,TABLE_NAME from DBA_IND_STATISTICS where stale_stats='YES' and owner in ('FV','GL') order by owner;


SPOOL OFF

EOF


echo "<html>" > $LOG_FILE.html

echo "<title>$MSUB</title>" >> $LOG_FILE.html

echo "<style>" >> $LOG_FILE.html

echo "  h1   {font:11pt Arial,Helvetica,sans-serif; color:black; background:White;line-height:0px;margin-top:16px;margin-bottom:0px;}" >> $LOG_FILE.html

echo "  body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;line-height:0px;margin-top:0px;margin-bottom:0px;}" >> $LOG_FILE.html

echo "</style>" >> $LOG_FILE.html

echo "<head>" >> $LOG_FILE.html

echo "<h3><b>$MSUB</b></h1>" >> $LOG_FILE.html

echo "<b>Enviroment:</b> $ORACLE_SID" >> $LOG_FILE.html

echo "<br><b>Context</b>: $CONTEXT_NAME<br>`date '+Date: %m/%d/%y  Time:%H:%M:%S'`<br>" >> $LOG_FILE.html

echo "</head><hr />" >> $LOG_FILE.html

echo "<body>" >> $LOG_FILE.html

cat $LOG_FILE >> $LOG_FILE.html

echo "</body>" >> $LOG_FILE.html

echo "</html>" >> $LOG_FILE.html


if [ `grep -ci "rows selected." $LOG_FILE` -ne 0 -o `grep -ci "row selected." $LOG_FILE` -ne 0 ];then

mailx -s "$(echo "$ORACLE_SID: 19c YE Specific Monitoring Details\n "Content-Type: text/html; charset=\"us-ascii\""")" -r ociNONPROD_donotreply@RAM.gov $EMAIL_LIST <YE_Monit

or_Running_jobs.log.html

fi



Monitoring Script

LOG_FILE=$HOME/scripts/log/Monitor_Running_jobs.log

. $HOME/.profile > /dev/null

EMAIL_LIST=seetharam.nanubalu@psc.RAM.gov

sqlplus -s / as sysdba >/dev/null <<EOF

SET LINESIZE 160 PAGESIZE 200 FEEDBACK ON

SET ECHO OFF MARKUP HTML ON ENTMAP OFF SPOOL ON HEAD '' TABLE 'align=centre border=1 color:Black background:#f7f7e7'

SPOOL $LOG_FILE

PROMPT <h1>YE and Standard Concurrent Manager Status</h1>

select q.concurrent_queue_name || ' - ' || target_node qname,

       q.running_processes actual,

       q.max_processes target,

       sum(decode(r.phase_code,'R',1,0)) - sum(decode(r.status_code,'W',1,0)) running,

       sum(decode(r.phase_code,'P',1,0)) pending,

       nvl(sum(decode(r.status_code,'W',1,'H',1,'S',1,'A',1,'Z',1,0)),0) paused,

       nvl(sum(decode(r.status_code,'F',1,'Q',1,'B',1,'T',0)),0) influx,

       avg((nvl(r.actual_start_date,r.requested_start_date) - r.requested_start_date)*1440) avgqtime

  from applsys.fnd_concurrent_requests r,

       applsys.fnd_concurrent_processes p,

       applsys.fnd_concurrent_queues q

 where r.controlling_manager (+) = p.concurrent_process_id

   and p.queue_application_id = q.application_id

   and p.concurrent_queue_id = q.concurrent_queue_id

   and q.max_processes > 0

   and ((r.phase_code in ('R','P','I') and upper('N') = 'Y') or

         upper('N') != 'Y')

and q.concurrent_queue_name in( 'STANDARD','STANDARD2', 'YETSMANAGER')

 group by q.concurrent_queue_name || ' - ' || target_node, q.running_processes, q.max_processes;


PROMPT <h1> Stale Stats of FV and GL </h1>


select distinct OWNER,TABLE_NAME,PARTITION_NAME,SUBPARTITION_NAME,NUM_ROWS,LAST_ANALYZED,stale_stats from dba_tab_statistics where stale_stats='YES'

and owner in ('FV','GL') order by owner;


select distinct owner,INDEX_NAME,TABLE_NAME from DBA_IND_STATISTICS where stale_stats='YES' and owner in ('FV','GL') order by owner;


PROMPT <h1> Locks </h1>

SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,

       id1, id2, lmode, request, type

FROM gv\$LOCK

WHERE (id1, id2, type) IN (SELECT id1, id2, type FROM gv\$LOCK WHERE request>0)   ORDER BY id1, request;



PROMPT <h1> Blocking Session Details </h1>


select 

   (select username from gv\$session where sid=a.sid) blocker,

   a.sid,

   ' is blocking ',

   (select username from gv\$session where sid=b.sid) blockee,

   b.sid

from 

   gv\$lock a, 

   gv\$lock b

where 

   a.block = 1

and 

   b.request > 0

and 

   a.id1 = b.id1

and 

   a.id2 = b.id2;


PROMPT <h1> Tables with locked stats GL and FV </h1>


SELECT owner,

       table_name,

       stattype_locked

FROM   dba_tab_statistics

WHERE  stattype_locked IS NOT NULL and owner in ('GL','FV')

ORDER BY owner, table_name;


PROMPT <h1> TOP 10 SQL statements that are using the most resources</h1>


SELECT *

FROM   (SELECT a.inst_id,a.sql_id,a.plan_hash_value,Substr(a.sql_text,1,50) sql_text,

               Trunc(a.disk_reads/Decode(a.executions,0,1,a.executions)) reads_per_execution, 

               a.buffer_gets, 

               a.disk_reads, 

               a.executions, 

               a.sorts,

               a.address

        FROM   gv\$sqlarea a

        ORDER BY 2 DESC)

WHERE  rownum <= 10;


PROMPT <h1> Library Cache locks and pin </h1>


select /*+ all_rows */ w1.sid waiting_session,

h1.sid holding_session,

w.kgllktype lock_or_pin,

w.kgllkhdl address,

decode(h.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',

'Unknown') mode_held,

decode(w.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',

'Unknown') mode_requested

from dba_kgllock w, dba_kgllock h, gv\$session w1, gv\$session h1

where

(((h.kgllkmod != 0) and (h.kgllkmod != 1)

and ((h.kgllkreq = 0) or (h.kgllkreq = 1)))

and

(((w.kgllkmod = 0) or (w.kgllkmod= 1))

and ((w.kgllkreq != 0) and (w.kgllkreq != 1))))

and w.kgllktype = h.kgllktype

and w.kgllkhdl = h.kgllkhdl

and w.kgllkuse = w1.saddr

and h.kgllkuse = h1.saddr;


PROMPT <h1> OCI Objects Invalid Status </h1>


select count(*) from dba_objects where object_name  like  'OCI_PO_IMPORT%' and status='INVALID';


PROMPT <h1> Mandatory Workflow Programs </h1>


select distinct(ARGUMENT_TEXT),USER_CONCURRENT_PROGRAM_NAME

,REQUEST_ID,REQUESTED_START_DATE, fcr.PHASE_CODE 

from apps.fnd_concurrent_requests fcr,

apps.fnd_concurrent_programs_vl fpl,

apps.fnd_application_vl fal

where  fcr.REQUESTED_START_DATE > trunc(sysdate)

--AND fcr.REQUESTED_START_DATE < sysdate

AND fcr.concurrent_program_id = fpl.concurrent_program_id

AND fcr.program_application_id = fpl.application_id

and fcr.program_application_id = fal.application_id

and user_concurrent_program_name = 'Workflow Background Process'

--and ARGUMENT_TEXT like ',%'

and fcr.PHASE_CODE in ('P','R')

ORDER BY ARGUMENT_TEXT DESC;


PROMPT <h1> Year End Specific Concurrent Programs </h1>


SELECT DISTINCT

  cq.concurrent_queue_name || ' - ' || target_node qname,

  cr.request_id "Req Id",

  TO_NUMBER(DECODE (cr.parent_request_id, -1, NULL, cr.parent_request_id)) "Parent Id",

  DECODE(SUBSTR(ct.user_concurrent_program_name,1,10),'Report Set',

         cr.description||' (Report Set)',ct.user_concurrent_program_name) "Concurrent Program", 

  pr.concurrent_program_name "Program", 

  us.user_name "User Name",

  to_char(cr.actual_start_date,'MM/DD HH24:MI:SS') "Start Date/Time",

  DECODE(cr.phase_code,

    'C', 'Completed', 'P', 'Pending', 

    'R', 'Running', 'I', 'Inactive','T','Terminated', 

    cr.phase_code) "Phase",

 DECODE(cr.status_code,

   'A', 'Waiting',  'B', 'Resuming',

   'C', 'Normal',   'D', 'Cancelled', 'E', 'Error', 

   'G', 'Warning',  'H', 'On Hold',   'I', 'Normal', 

   'Q', 'Standby',  'R', 'Normal',    'S', 'Suspended', 

   'U', 'Disabled', 'W', 'Paused',    'X', 'Terminated', 

   'F', 'Scheduled','M', 'NO Manager','T', 'Terminated',

   'Z', 'Waiting', cr.status_code) "Status",

 ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) "Time (mins)",

 DECODE

   (cr.phase_code,'R',

    to_char(trunc( sysdate - cr.actual_start_date ),'FM0') || ':' ||

    to_char(trunc( mod( (sysdate - cr.actual_start_date)*24, 24 ) ), 'FM00') || ':' || 

    to_char(trunc( mod( (sysdate - cr.actual_start_date)*24*60, 60 ) ), 'FM00') || ':' ||

    to_char(trunc( mod( (sysdate - cr.actual_start_date)*24*60*60, 60 ) ), 'FM00') ,

    to_char(trunc( cr.actual_completion_date - cr.actual_start_date ),'FM0') || ':' ||

    to_char(trunc( mod( (cr.actual_completion_date - cr.actual_start_date)*24, 24 ) ), 'FM00') || ':' || 

    to_char(trunc( mod( (cr.actual_completion_date - cr.actual_start_date)*24*60, 60 ) ), 'FM00') || ':' ||

    to_char(trunc( mod( (cr.actual_completion_date - cr.actual_start_date)*24*60*60, 60 ) ), 'FM00') 

   ) "Time"

FROM 

  apps.fnd_Concurrent_requests cr,

  apps.fnd_concurrent_processes cp,

  apps.fnd_concurrent_queues cq,

  apps.fnd_concurrent_programs_tl ct,

  apps.fnd_concurrent_programs pr,

  apps.fnd_user us

WHERE cr.controlling_manager = cp.concurrent_process_id

  AND cr.concurrent_program_id = pr.concurrent_program_id

  AND cr.program_application_id = pr.application_id

  AND ct.concurrent_program_id = pr.concurrent_program_id

  AND cp.queue_application_id = cq.application_id

  AND cp.concurrent_queue_id = cq.concurrent_queue_id

  AND ct.language = 'US'

  AND cr.requested_by = us.user_id

  AND status_code = 'R'

AND ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) >= 5

and ct.user_concurrent_program_name in ('Run MassAllocations',

'RAM Net Cost Allocation Program',

'Year End Closing Process',

'Add/Delete Summary Accounts',

'Open Period',

'Posting',

'Journal Import',

'RAM CFRS Trial Balance Extract',

'Open Encumbrance Year',

'Open Budget Year',

'GTAS / Data Act Processes',

'RAM GTAS - Update TPTAS Information',

'RAM GTAS Pre-Process',

'RAM GTAS Bulk File',

'Federal File Creation Process',

'Federal Accounts Creation Process',

'Federal Activity Attributes Creation',

'RAM CFRS Trial Balance Extract',

'RAM Consolidated CFRS/IDDA Extract Process',

'RAM Net Cost Allocation Program',

'RAM Budget Execution Configuration Roll Forward Process',

'RAM UDO Audit Extract Process',

'RAM GL Transactions Audit Extract Process',

'RAM Expense Audit Extract Process',

'RAM AR Audit Extract Process',

'RAM AP 2110 Audit Extract Process',

'RAM AP 2190 Audit Extract Process',

'RAM Cash Audit Extract Process',

'RAM Trial Balance Audit Extract Process',

'RAM Revenue Audit Extract Process')

ORDER BY ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) DESC

/

PROMPT <h3><br>Year End Specific Concurrent Programs - Sessions</h3>

SELECT DISTINCT

  cr.request_id "Request ID",

  DECODE(SUBSTR(cptl.user_concurrent_program_name,1,10),'Report Set',

         cr.description||' (Report Set)',cptl.user_concurrent_program_name) ||'<br>'||

    '('||cr.argument_text||')' "Concurrent Program/Parameters", 

  'Queue name: '||cq.concurrent_queue_name || '<br>'||

  'APP Server: '||upper(target_node)|| '<br>'||

  'PID       : '||cr.os_process_id "APP Process",

  (select 

  'DB Server : '||upper(vi.host_name)||' Instance: '||vi.instance_name|| ' Instance id: '||vs.inst_id || '<br>'||

  'Session   : SID: '||vs.sid|| ' Serial#: '||vs.serial#||' PID: '||cr.oracle_process_id||' Status: '||vs.status|| '<br>'||

  'SQL ID    : '||vs.sql_id|| '<br>'||

  'Wait Event: '||w.event||'('||w.seconds_in_wait||') seconds'

   FROM gv\$session vs, gv\$process vp, gv\$instance vi, gv\$session_wait w

   WHERE vp.addr= vs.paddr

     AND vs.module is NOT NULL

     AND vs.audsid=cr.oracle_session_id

     AND vs.inst_id=vp.inst_id

     AND vs.inst_id=w.inst_id

     AND vs.inst_id=vi.inst_id

     AND w.sid=vs.sid

     AND rownum=1

  ) "DB Session"

from apps.fnd_concurrent_programs cp,

  apps.fnd_concurrent_programs_tl cptl,

  apps.fnd_concurrent_requests cr,

  applsys.fnd_USER us, 

  apps.fnd_concurrent_queues cq,

  apps.fnd_concurrent_processes cpp

where cp.application_id = cptl.application_id

  and cp.concurrent_program_id = cptl.concurrent_program_id

  and cptl.language='US'

  and cr.program_application_id = cp.application_id 

  and cr.concurrent_program_id = cp.concurrent_program_id

  and us.user_id = cr.requested_by

  AND cpp.queue_application_id = cq.application_id

  AND cpp.concurrent_queue_id = cq.concurrent_queue_id

  AND cr.controlling_manager = cpp.concurrent_process_id

  AND status_code = 'R'

and cptl.user_concurrent_program_name in ('Run MassAllocations',

'RAM Net Cost Allocation Program',

'Year End Closing Process',

'Add/Delete Summary Accounts',

'Open Period',

'Posting',

'Journal Import',

'RAM CFRS Trial Balance Extract',

'Open Encumbrance Year',

'Open Budget Year',

'GTAS / Data Act Processes',

'RAM GTAS - Update TPTAS Information',

'RAM GTAS Pre-Process',

'RAM GTAS Bulk File',

'Federal File Creation Process',

'Federal Accounts Creation Process',

'Federal Activity Attributes Creation',

'RAM CFRS Trial Balance Extract',

'RAM Consolidated CFRS/IDDA Extract Process',

'RAM Net Cost Allocation Program',

'RAM Budget Execution Configuration Roll Forward Process',

'RAM UDO Audit Extract Process',

'RAM GL Transactions Audit Extract Process',

'RAM Expense Audit Extract Process',

'RAM AR Audit Extract Process',

'RAM AP 2110 Audit Extract Process',

'RAM AP 2190 Audit Extract Process',

'RAM Cash Audit Extract Process',

'RAM Trial Balance Audit Extract Process',

'RAM Revenue Audit Extract Process') 

AND ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) >= 5

/

PROMPT <h1>Regular Concurrent Programs</h1>

SELECT DISTINCT

  cq.concurrent_queue_name || ' - ' || target_node qname,

  cr.request_id "Req Id",

  TO_NUMBER(DECODE (cr.parent_request_id, -1, NULL, cr.parent_request_id)) "Parent Id",

  DECODE(SUBSTR(ct.user_concurrent_program_name,1,10),'Report Set',

         cr.description||' (Report Set)',ct.user_concurrent_program_name) "Concurrent Program",

  pr.concurrent_program_name "Program",

  us.user_name "User Name",

  to_char(cr.actual_start_date,'MM/DD HH24:MI:SS') "Start Date/Time",

  DECODE(cr.phase_code,

    'C', 'Completed', 'P', 'Pending',

    'R', 'Running', 'I', 'Inactive','T','Terminated',

    cr.phase_code) "Phase",

 DECODE(cr.status_code,

   'A', 'Waiting',  'B', 'Resuming',

   'C', 'Normal',   'D', 'Cancelled', 'E', 'Error',

   'G', 'Warning',  'H', 'On Hold',   'I', 'Normal',

   'Q', 'Standby',  'R', 'Normal',    'S', 'Suspended',

   'U', 'Disabled', 'W', 'Paused',    'X', 'Terminated',

   'F', 'Scheduled','M', 'NO Manager','T', 'Terminated',

   'Z', 'Waiting', cr.status_code) "Status",

 ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) "Time (mins)",

 DECODE

   (cr.phase_code,'R',

    to_char(trunc( sysdate - cr.actual_start_date ),'FM0') || ':' ||

    to_char(trunc( mod( (sysdate - cr.actual_start_date)*24, 24 ) ), 'FM00') || ':' ||

    to_char(trunc( mod( (sysdate - cr.actual_start_date)*24*60, 60 ) ), 'FM00') || ':' ||

    to_char(trunc( mod( (sysdate - cr.actual_start_date)*24*60*60, 60 ) ), 'FM00') ,

    to_char(trunc( cr.actual_completion_date - cr.actual_start_date ),'FM0') || ':' ||

    to_char(trunc( mod( (cr.actual_completion_date - cr.actual_start_date)*24, 24 ) ), 'FM00') || ':' ||

    to_char(trunc( mod( (cr.actual_completion_date - cr.actual_start_date)*24*60, 60 ) ), 'FM00') || ':' ||

    to_char(trunc( mod( (cr.actual_completion_date - cr.actual_start_date)*24*60*60, 60 ) ), 'FM00')

   ) "Time"

FROM

  apps.fnd_Concurrent_requests cr,

  apps.fnd_concurrent_processes cp,

  apps.fnd_concurrent_queues cq,

  apps.fnd_concurrent_programs_tl ct,

  apps.fnd_concurrent_programs pr,

  apps.fnd_user us

WHERE cr.controlling_manager = cp.concurrent_process_id

  AND cr.concurrent_program_id = pr.concurrent_program_id

  AND cr.program_application_id = pr.application_id

  AND ct.concurrent_program_id = pr.concurrent_program_id

  AND cp.queue_application_id = cq.application_id

  AND cp.concurrent_queue_id = cq.concurrent_queue_id

  AND ct.language = 'US'

  AND cr.requested_by = us.user_id

  AND status_code = 'R'

--  AND ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) >= 30

ORDER BY ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) DESC

/

PROMPT <h1><br>Regular Concurrent Programs - Sessions</h1>

SELECT DISTINCT

  cr.request_id "Request ID",

  DECODE(SUBSTR(cptl.user_concurrent_program_name,1,10),'Report Set',

         cr.description||' (Report Set)',cptl.user_concurrent_program_name) ||'<br>'||

    '('||cr.argument_text||')' "Concurrent Program/Parameters",

  'Queue name: '||cq.concurrent_queue_name || '<br>'||

  'APP Server: '||upper(target_node)|| '<br>'||

  'PID       : '||cr.os_process_id "APP Process",

  (select

  'DB Server : '||upper(vi.host_name)||' Instance: '||vi.instance_name|| ' Instance id: '||vs.inst_id || '<br>'||

  'Session   : SID: '||vs.sid|| ' Serial#: '||vs.serial#||' PID: '||cr.oracle_process_id||' Status: '||vs.status|| '<br>'||

  'SQL ID    : '||vs.sql_id|| '<br>'||

  'Wait Event: '||w.event||'('||w.seconds_in_wait||') seconds'

   FROM gv\$session vs, gv\$process vp, gv\$instance vi, gv\$session_wait w

   WHERE vp.addr= vs.paddr

     AND vs.module is NOT NULL

     AND vs.audsid=cr.oracle_session_id

     AND vs.inst_id=vp.inst_id

     AND vs.inst_id=w.inst_id

     AND vs.inst_id=vi.inst_id

     AND w.sid=vs.sid

     AND rownum=1

  ) "DB Session"

from apps.fnd_concurrent_programs cp,

  apps.fnd_concurrent_programs_tl cptl,

  apps.fnd_concurrent_requests cr,

  applsys.fnd_USER us,

  apps.fnd_concurrent_queues cq,

  apps.fnd_concurrent_processes cpp

where cp.application_id = cptl.application_id

  and cp.concurrent_program_id = cptl.concurrent_program_id

  and cptl.language='US'

  and cr.program_application_id = cp.application_id

  and cr.concurrent_program_id = cp.concurrent_program_id

  and us.user_id = cr.requested_by

  AND cpp.queue_application_id = cq.application_id

  AND cpp.concurrent_queue_id = cq.concurrent_queue_id

  AND cr.controlling_manager = cpp.concurrent_process_id

  AND status_code = 'R'

--  AND ROUND((NVL(actual_completion_date,SYSDATE)-actual_start_date)*1440,2) >= 30

/


SPOOL OFF

EOF


echo "<html>" > $LOG_FILE.html

echo "<title>$MSUB</title>" >> $LOG_FILE.html

echo "<style>" >> $LOG_FILE.html

echo "  h1   {font:11pt Arial,Helvetica,sans-serif; color:black; background:White;line-height:0px;margin-top:16px;margin-bottom:0px;}" >> $LOG_FILE.html

echo "  body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;line-height:0px;margin-top:0px;margin-bottom:0px;}" >> $LOG_FILE.html

echo "</style>" >> $LOG_FILE.html

echo "<head>" >> $LOG_FILE.html

echo "<h3><b>$MSUB</b></h1>" >> $LOG_FILE.html

echo "<b>Enviroment:</b> $ORACLE_SID" >> $LOG_FILE.html

echo "<br><b>Context</b>: $CONTEXT_NAME<br>`date '+Date: %m/%d/%y  Time:%H:%M:%S'`<br>" >> $LOG_FILE.html

echo "</head><hr />" >> $LOG_FILE.html

echo "<body>" >> $LOG_FILE.html

cat $LOG_FILE >> $LOG_FILE.html

echo "</body>" >> $LOG_FILE.html

echo "</html>" >> $LOG_FILE.html


if [ `grep -ci "rows selected." $LOG_FILE` -ne 0 -o `grep -ci "row selected." $LOG_FILE` -ne 0 ];then

  mailx -s "$(echo "$ORACLE_SID: Running Concurrent Programs\nContent-Type: text/html")" $EMAIL_LIST < $LOG_FILE.html

fi


An OCI Architect's First Walk Through Generative AI

Every enterprise architect eventually gets that request from leadership: "Can we use AI on our data — without shipping it off to some ...