Wbe Script

download Wbe Script

If you can't read please download the document

description

wbescript

Transcript of Wbe Script

REM HEADERREM $Header: atg_supp_wfbkgrnd.sql v1.0 AXGONZAL $REM REM MODIFICATION LOG:REM Created: Dec 30th, 2008REM 7-FEB-2009 AXGONZAL modified queriesREM REM REM This script was created to collect the required informationREM to analyze wf background engine problemsREMREM How to run it?REM REM sqlplus apps/REMREM @atg_supp_wfbkgrnd.sqlREMREM Parameter:REMREM NoneREM REM Output file REM REM wf_bkgrnd.htmlREMREMREM REM set arraysize 1set heading offset feedback offset verify offSET CONCAT ONSET CONCAT .set lines 120set pages 9999def outputfile = "wf_bkgrnd.html"spool &&outputfileprompt alter session set NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';prompt prompt prompt prompt Workflow Backgroun Engine Diagnostic Script prompt prompt prompt prompt prompt prompt prompt prompt prompt Workflow Backgroun Engine prompt
Quick Links to Tables
prompt prompt Database Parametersprompt DBA_QUEUESprompt WF_DEFERRED_TABLE_Mprompt Activities in Deferred Statusprompt prompt prompt WF_ITEM_ATTRIBUTE_VALUESprompt WF_ITEM_ACTIVITY_STATUSESprompt FND_CONCURRENT_PROGRAMSprompt PACKAGE_VERSIONSprompt prompt prompt REMREM ******* DATABASE PARAMETERS *******REMprompt prompt prompt DB PARAMETERS prompt NAMEprompt VALUEselect ''||NAME||''||chr(10)|| ''||VALUE||''||chr(10)||''from v$parameterwhere upper(name) in ('AQ_TM_PROCESSES','JOB_QUEUE_PROCESSES','JOB_QUEUE_INTERVAL')order by name;prompt prompt prompt prompt If aq_tm_processes value is equal to zero, please contact the DBA to change it to 1 or higher.prompt REMREM ******* DBA_QUEUES *******REMprompt prompt prompt DBA_QUEUES prompt prompt OWNERprompt QUEUE_NAMEprompt ENQUEUEprompt DEQUEUEprompt RETRIESprompt RETENTIONprompt DELAYselect ''||q.OWNER||''||chr(10)||''||q.NAME||''||chr(10)||''||q.ENQUEUE_ENABLED||''||chr(10)||''||q.DEQUEUE_ENABLED||''||chr(10)||''||to_char(q.MAX_RETRIES)||''||chr(10)||''||q.RETENTION||''||chr(10)||''||to_char(q.RETRY_DELAY)||''from ALL_QUEUES qwhere (q.NAME like '%WF_DEFERRED_%')order by q.NAME;prompt REMREM ******* WF_DEFERRED_TABLE_M *******REMprompt prompt prompt WF_DEFERRED_TABLE_M - All Event Information

prompt prompt ITEM_TYPEprompt ITEM_KEYprompt STATEprompt PRIORITYprompt w.ENQ_TIMEprompt w.DEQ_TIMEprompt w.MSGIDselect ''||w.user_data.itemtype||''||chr(10)||''||decode(w.state, 0, '0 = Ready',1, '1 = Delayed',2, '2 = Retained/Processed',3, '3 = Exception',to_char(w.state))||''||chr(10)||''||count(*)||''||chr(10)||''from wf_deferred_table_m wgroup by w.user_data.itemtype, w.state;prompt prompt prompt prompt Ready = Activity is ready to be processed
prompt Delayed = Activity will be processed later
prompt Retained = Activity was already processed
prompt Exception = Activity had an error prompt REMREM ******* WF_ITEM_ACTIVITY_STATUSES *******REMprompt prompt prompt WF_ITEM_ACTIVITY_STATUSES - Activities in Deferred Statusprompt prompt ITEM_TYPEprompt ITEM_KEYprompt ROOT_ACTIVITYprompt ROOT_ACTIVITY_VERSIONprompt ITEM_BEGIN_DATEprompt END_DATEprompt ACTIVITY_LABELprompt ACTIVITY_STATUSprompt ACTIVITY_RESULT_CODEprompt ERROR_NAMEprompt ACTIVITY_BEGIN_DATEselect ''||wi.item_type||''||chr(10)||''||wi.item_key||''||chr(10)||''||wi.root_activity||''||chr(10)||''||wi.root_activity_version||''||chr(10)||''||wi.begin_date||''||chr(10)||''||wi.end_date||''||chr(10)||''||PRA.INSTANCE_LABEL||''||chr(10)||''||was.activity_status||''||chr(10)||''||was.ACTIVITY_RESULT_CODE||''||chr(10)||''||was.error_name||''||chr(10)||''||was.begin_date||''||chr(10)||''from wf_items wi, wf_item_activity_statuses was, wf_process_activities PRAwhere wi.item_type = was.item_typeand wi.item_key = was.item_keyand wi.end_date is nulland was.end_date is nulland was.activity_status = 'DEFERRED'and was.item_type = wi.item_typeand was.item_key = wi.item_keyand PRA.instance_id(+) = was.process_activityorder by wi.item_key;prompt REMREM ******* WF_ITEM_ATTRIBUTE_VALUES *******REMprompt prompt prompt WF_ITEM_ATTRIBUTE_VALUES table - Items with more than 1000 rowsprompt prompt ITEM_TYPEprompt COUNTselect ''||ITEM_TYPE||''||chr(10)||''||COUNT(*)||''from WF_ITEM_ATTRIBUTE_VALUESgroup by item_typehaving count(*) > 1000order by COUNT(*) desc;prompt REMREM ******* WF_ITEM_ACTIVITY_STATUSES *******REMprompt prompt prompt WF_ITEM_ACTIVITY_STATUSES table - Items with more than 1000 rowsprompt prompt ITEM_TYPEprompt COUNTselect /*+ parallel(ITEM_TYPE,4)*/''||ITEM_TYPE||''||chr(10)||''||COUNT(*)||''from WF_ITEM_ACTIVITY_STATUSES group by item_typehaving count(*) > 1000order by COUNT(*) desc;prompt REMREM ******* FND_CONCURRENT_PROGRAMS *******REMprompt prompt prompt Workflow Background Programs Executed Today prompt prompt REQUEST_IDprompt PROGRAM_NAMEprompt REQUEST_DATEprompt PARAMETERSprompt PHASEprompt STATUSselect ''||r.request_id||''||chr(10)||''||p.concurrent_program_name||''||chr(10)||''||r.request_date||''||chr(10)||''||r.argument_text||''||chr(10)||''||a.meaning||''||chr(10)||''||b.meaning||''from fnd_concurrent_programs p, fnd_concurrent_requests r, fnd_lookups a, fnd_lookups bwhere p.concurrent_program_id = r.concurrent_program_id and p.concurrent_program_name like 'FNDWFBG'and a.LOOKUP_TYPE = 'CP_PHASE_CODE'and a.LOOKUP_CODE = r.phase_codeand b.LOOKUP_TYPE = 'CP_STATUS_CODE'and b.LOOKUP_CODE = r.status_codeand to_char(r.request_date,'MM-DD-YYYY') >= to_char(sysdate,'MM-DD-YYYY')order by 1 desc;prompt prompt prompt prompt Development has provided recommendations about how to run this program in order to avoid performance with it.
prompt The recommendation is to run three separate background engines at different intervals:
prompt .
prompt a. Run a background engine to handle only deferred activities every 5 to 60 minutes.
prompt b. Run a background engine to handle only timed out activities every 1 to 24 hours as needed.
prompt c. Run a background engine to handle only stuck processes once a week to once a month, when the load on the system is low.
prompt .
prompt For more information refer to Note 266614.1 and Oracle Workflow Administrators Guide on chapter 2.
prompt REMREM ******* PACKAGE_VERSIONS *******REMprompt prompt prompt Package Versions prompt PACKAGE_NAMEprompt TEXTselect ''||NAME||''||chr(10)|| ''||TEXT||''||chr(10)||''from dba_sourcewhere name in ('WF_ENGINE')and line = 2;prompt spool offset heading onset feedback onset verify onexit