Monday, December 31, 2012

Diagnose Common Concurrent Manager Issues:



Diagnose Common Concurrent Manager Issues:

Step 1 :  Checking how many rows in FND_CONCURRENT_REQUEST.

     SQL> select  count(*) from fnd_concurrent_requests;

Step 2:   Checking how many rows in FND_CONCURRENT_PROCESSES table.

     SQL> select  count(*) from fnd_concurrent_processes;

Step 3: Checking sys.dual table which should have one and only one row.
     SQL> select  count(*) from sys.dual;

Note: If you have more than one row in sys.dual, please delete it
sql> delete rownum from SYS.DUAL;

Step 4:  Checking fnd_dual. There must be at lest one row:
Note : If there are no record selected,

     SQL>  Update fnd_dual table to have at lest one record

Step 5:  Checking the Internal Manager queue name "FNDICM" which should be=1

     SQL>  select concurrent_queue_id from fnd_concurrent_queues where concurrent_queue_name='FNDICM';

Step 6: Checking for Active processes under the Internal Manager queue

SQL> select a.concurrent_queue_name
  , substr(b.os_process_id,0,10) "OS Proc"
  , b.oracle_process_id "Oracle ID"
  , b.process_status_code
  from fnd_concurrent_queues a
  , fnd_concurrent_processes b
  where a.concurrent_queue_id=b.concurrent_queue_id
  and a.concurrent_queue_name='FNDICM'
  and b.process_status_code='A'
  order by b.process_status_code;

Note:
If any rows found with process_status_code with value = 'A' (= Active)    
 The internal Manager will not start up ,so to avoide this issue
 
update these rows to have process_status_code value ='K'(terminated)

Step  7: Checking for Active processes under the Standard Manager queue in fnd_concurrent_proceses table:

select a.concurrent_queue_name
  , substr(b.os_process_id,0,10) "OS Proc"
  , b.oracle_process_id "Oracle ID"
  , b.process_status_code
  from fnd_concurrent_queues a
  , fnd_concurrent_processes b
  where a.concurrent_queue_id=b.concurrent_queue_id
  and a.concurrent_queue_name='STANDARD'
  and b.process_status_code='A'
  order by b.process_status_code;

Note :
If any rows found with process_status_code with value = 'A' (= Active)    
 The internal Manager will not start up ,so to avoide this issue
 
update these rows to have process_status_code value ='K'(terminated)

Step 8:  Checking for Active processes under the Conflict Manager queue in fnd_concurrent_proceses table:

SQL>  select a.concurrent_queue_name
  , substr(b.os_process_id,0,10) "OS Proc"
  , b.oracle_process_id "Oracle ID"
  , b.process_status_code
  from fnd_concurrent_queues a
  , fnd_concurrent_processes b
  where a.concurrent_queue_id=b.concurrent_queue_id
  and a.concurrent_queue_name='FNDCRM'
  and b.process_status_code='A'
  order by b.process_status_code;

Note : If any rows found with process_status_code with value = 'A' (= Active)    
 The internal Manager will not start up ,so to avoide this issue
update these rows to have process_status_code value ='K'(terminated)

Step 9:  Checking Actual and Target Processes for Internal Manager:
SQL > select MAX_PROCESSES,RUNNING_PROCESSES from FND_CONCURRENT_QUEUES where CONCURRENT_QUEUE_NAME='FNDICM';

Note: If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.

Step 10:  Checking Actual and Target Processes for the Standard Manager:
SQL> select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='STANDARD';

Note: If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.

Step 11:  Checking Actual and Target Processes for Conflict Resolution  Manager:
SQL>  select MAX_PROCESSES,RUNNING_PROCESSES
from FND_CONCURRENT_QUEUES
where CONCURRENT_QUEUE_NAME='FNDCRM';

Note: If the MAX_PROCESSES=RUNNING_PROCESSES that means the manager is UP.

Step 12:  Checking if the control_code set to 'N':
SQL>  select control_code from fnd_concurrent_queues where control_code='N';

Note : If any rows selected, please update the table fnd_concurrent_queues:

SQL> Update fnd_concurrent_queues set control_code = null where control_code ='N';

SQL> Update fnd_concurrent_queues set target_node = null;

SQL>  commit;

Step 13:  Checking terminated processes:

SQL> select count (*) from fnd_concurrent_requests where status_code='T';

Note :  If you have terminated processes run the following sql statement:

SQL> Update fnd_concurrent_requests
     set status_code = 'E', phase_code = 'C'
     where status_code = 'T';


Step 14: Checking pending requests:

SQL>  select count(*) from fnd_concurrent_requests where status_code='P';

Note :  If any rows selected please run the following sql statement:

SQL> Update fnd_concurrent_requests
     set status_code = 'E', phase_code = 'C'
     where status_code = 'P';

Step 15: Checking Running processes:

select count (*) from fnd_concurrent_requests
where status_code='R';

Note :  If you have Running processes run the following sql statement

SQL> Update fnd_concurrent_requests
     set status_code = 'E', phase_code = 'C'
    where status_code = 'R';


Step 16: Checking the PMON method, which should be set to LOCK:

SQL> select profile_option_id , profile_option_value
from FND_PROFILE_OPTION_VALUES
where profile_option_id= (select profile_option_id
from FND_PROFILE_OPTIONS
where profile_option_name='CONC_PMON_METHOD');

Note : If the PROFILE_OPTION_VALUE was't LOCK please
Reset PMON to LOCK by running afimpmon.sql script(The manager should be down)

-At UNIX command prompt:

cd $FND_TOP/sql

Log into SQLPLUS as apps/

QL> @afimpmon.sql
  prompt1:dual
  prompt2:LOCK     (LOCK MUST BE ALL UPPERCASE)  


For Oracle Applications Release 11.5 and 12.0, when you check the PMON
Method you may get no rows selected which is normal,

Step 17: Checking how many FNDLIBR processes are running:

$ ps -ef |grep -i fndlibr
If you have any FNDLIBR processes running,please kill them before
starting or shuting down the internal manager


Step 18: Checking how many "FND_%"invalid objects:

select substr(owner,1, 12) owner, substr(object_type,1,12) type,
substr(status,1,8) status, substr(object_name, 1, 25) name
from dba_objects
where object_name like 'FND_%'
and status='INVALID';

If you have any invalied objects please see Note 113947.1

Step 19: How to find the PID in the O/S for request_id:

select r.request_id, p.os_process_id
from FND_CONCURRENT_REQUESTS r,FND_CONCURRENT_PROCESSES p
where r.controlling_manager = p.concurrent_process_id
and request_id=&request_id;


+++++++++++++++++++++++++++
Diagnose Common Concurrent Manager Issues [ID 171855.1]


SELECT          responsibility_name RN
FROM            fnd_request_groups frg,
                fnd_request_group_units frgu,
                fnd_concurrent_programs_vl fcpv,
                fnd_responsibility_vl frv
WHERE           frgu.request_unit_type = 'P'
AND             (UPPER(fcpv.concurrent_program_name) = UPPER('&1')
                OR
                UPPER(fcpv.user_concurrent_program_name) = UPPER('&1'))
AND             frgu.request_group_id = frg.request_group_id
AND             frgu.request_unit_id = fcpv.concurrent_program_id
AND             frv.request_group_id = frg.request_group_id
ORDER BY        responsibility_name
/
SQL> &concurrent program name :
 
++++++++++++++++++++++++++
How to Re-create Concurrent Manager Views  ID : 146786.1
FNDLIBR  "FND"  "FNDCPBWV"  apps/<passwd>  "SYSADMIN"  "System Administrator"    "SYSADMIN"
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Concurrent Processing (CP) / APPS Reporting Scripts [ID 213021.1]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

No comments:

Post a Comment