Friday, August 26, 2011

Target node/queue unavailable or Concurrent Manager Issue’s after cloning or DB-Refresh


Target node/queue unavailable or Concurrent Manager Issue’s after cloning or DB-Refresh

Concurrent Processing - After Cloning All the Concurrent Managers Do Not Start for the Clone [ID 555081.1]

Conflict Resolution Manager Shows Target Node/Queue Unavailable [ID 732709.1]

Concurrent Managers Do Not Start After Cloning Nodes Not Updated In Conc_queues [ID 466532.1]


EXEC FND_CONC_CLONE.TARGET_CLEAN;

Run autoconfig on dbtier then appsTier.

Run cmclean.sql script  Non destructive script this can also be tried-->>

Start all application services and check whether managers are up.

Apply this solution in last when the above one doesnt work.

select node_name,target_node,control_code from fnd_concurrent_queues;

update apps.fnd_concurrent_queues set node_name = 'Node NAME' where node_name='Existing Node Name'; 

select NODE_NAME,NODE_MODE,STATUS from fnd_nodes;

desc fnd_concurrent_queues

select control_code,target_node,node_name,CONCURRENT_QUEUE_NAME from fnd_concurrent_queues;

UPDATE fnd_concurrent_queues set control_code = null;

UPDATE fnd_concurrent_queues set target_node = 'Node Name';

UPDATE fnd_concurrent_queues set node_name = 'Node Name';

update FND_CONCURRENT_QUEUES set control_code = null where concurrent_queue_name = 'OAMGCS_NODENAME'; -- supply the node name..(Ur Existing Node Name)

Commit;

select control_code,target_node,node_name,CONCURRENT_QUEUE_NAME from fnd_concurrent_queues;


Create defaults file for adPatch or adpatch defaultsfile


adpatch defaultsfile=$APPL_TOP/admin/PRODMAX/defaults.txt


Using Defaults file with adpatch (Non Interactive)

How to create defaults file ?

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt ( You can keep this txt file in any location of your choice)

Now abort autopatch section at point where it asks for patch directory by ctrl +c or ctrl+d

Now check if this file exists

You have to do above steps only once in an environment to create defaults file.


How to apply patches in future ?

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt

Now any future patches you apply non interactive using defaults file like

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt logfile=654321.log patchtop=/patches/654321 driver=u654321.drv interactive=no

You will see that it will apply patch by itself using defaults file , adpatch will pick APP_TOP, ORACLE_HOME information, system password and apps password from defaults file.

This will save lot of time & you can reduce your patch timing usign defaults file

ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired ORA-06512: at "APPS.WF_NOTIFICATION", line 5130 ORA-06512: at line 1


Appove Workflow Notification Mailer --

ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired ORA-06512: at "APPS.WF_NOTIFICATION", line 5130 ORA-06512: at line 1

Solution :

select do.owner,do.object_name,do.object_type,dl.session_id,vs.serial#, vs.program,vs.machine,vs.osuser
from dba_locks dl,dba_objects do,v$session vs
where do.object_name ='WF_NOTIFICATIONS' and do.object_type='TABLE' and dl.lock_id1 =do.object_id and vs.sid = dl.session_id;

Issue the command

sql > alter system kill sessions 'sid,serial#' immediate;

Load Balancing in R12


Using Load-Balancers with Oracle E-Business Suite Release 12 [ID 380489.1]


Implementing Load Balancing On Oracle E-Business Suite -
Documentation For Specific Load Balancer Hardware [ID 727171.1]


Sharing The Application Tier File System in Oracle E-Business Suite Release 12 [ID 384248.1]
Add new node to application ---- 384248.1

TEMP Usuage

TEMP Space Used

select tablespace_name, bytes_used/1024/1024, bytes_free/1024/1024 from v$temp_space_header;

USERS Using the tablespace

select b.tablespace, (b.blocks*p.value)/1024/1024 , a.sid, a.username from sys.v_$session a, sys.v_$sort_usage b, sys.v_$parameter p
where p.name=b.session_addr;

To get which user is using temp tablespace

select username,tablespace,extents from v$sort_usage;

TEMP Usuage per session

SELECT   S.sid || ',' || S.serial# sid_serial, S.username, S.osuser, P.spid, S.module,
         S.program, SUM (T.blocks) * TBS.block_size / 1024 / 1024 mb_used, T.tablespace,
         COUNT(*) sort_ops
FROM     v$sort_usage T, v$session S, dba_tablespaces TBS, v$process P
WHERE    T.session_addr = S.saddr
AND      S.paddr = P.addr
AND      T.tablespace = TBS.tablespace_name
GROUP BY S.sid, S.serial#, S.username, S.osuser, P.spid, S.module,
         S.program, TBS.block_size, T.tablespace
ORDER BY sid_serial;

Free and Used Space in Temp Tablespace :

SELECT   A.tablespace_name tablespace, D.mb_total,
         SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
         D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM     v$sort_segment A,
         (
         SELECT   B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
         FROM     v$tablespace B, v$tempfile C
         WHERE    B.ts#= C.ts#
         GROUP BY B.name, C.block_size
         ) D
WHERE    A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total;

By statement --

SELECT   S.sid || ',' || S.serial# sid_serial, S.username,
         T.blocks * TBS.block_size / 1024 / 1024 mb_used, T.tablespace,
         T.sqladdr address, Q.hash_value, Q.sql_text
FROM     v$sort_usage T, v$session S, v$sqlarea Q, dba_tablespaces TBS
WHERE    T.session_addr = S.saddr
AND      T.sqladdr = Q.address (+)
AND      T.tablespace = TBS.tablespace_name
ORDER BY S.sid;



SID AND SERIAL# OF APPLICATION USER :

lOGIN TO SYSADMIN NAVIGATE TO :
SECURITY USER -- MONITOR --
CHECK ORACLE PROCESS-ID

IF UNABLE TO SEE USERS -- SET PROFILE OPTION SIGN ON AUDIT TO FORM LEVEL
SAVe


SELECT SUBSTR(d.user_name,1,30) "User Name",a.pid,b.sid,b.serial#
FROM v$process a, v$session b, fnd_logins c, fnd_user d
WHERE a.pid = c.pid
AND c.pid = &PID
AND d.user_name = UPPER('&USER_NAME')
AND TO_DATE(c.start_time) = TO_DATE('&START_DATE')
AND d.user_id = c.user_id
AND a.addr = b.paddr
AND c.end_time IS NULL;

2) When prompted for "PID" enter the value that appears under the Oracle Process column on the form.

3) When prompted for "USER_NAME" enter the value that appears under the User Name column on the form.

4) When prompted for "START_DATE" enter the Date that the user started the session.


Another way to get this info is through OAM:

- Login to OAM
- Navigate to Site Map > Monitoring > Forms Sessions
- Click on "Session Details"