Wednesday, August 30, 2017

ORA-39181: Only partial table data may be exported due to fine grain access control

ORA-39181: Only partial table data may be exported due to fine grain access control





ORA-39181: Only partial table data may be exported due to fine grain access control on “”.”WORKFLOW_ACTION_PARAM”
. . exported “******”.”WORKFLOW_ACTION_PARAM” 0 KB 0 rows
ORA-39181: Only partial table data may be exported due to fine grain access control on “******”.”WORKING_LIST”

I tried expdp as system user.It seems system user is not able to export full data of these tables due to vpd policies enabled (FGAC).
We can check that  in dba_policies
select object_name from dba_policies where object_owner=’OWNER_NAME’;
Solution :
In order to avoid this error,we have to grant EXEMPT ACCESS POLICY to the exporting user(in our case user:system) and restart export.Database users granted the EXEMPT ACCESS POLICY privilege, either directly or through a database role, are exempt from VPD enforcements.

grant EXEMPT ACCESS POLICY to SYSTEM;
EXEMPT ACCESS POLICY is a very powerful privilege and should be carefully managed.so once we are done with export,just revoke it.

revoke EXEMPT ACCESS POLICY  from system;

Sunday, August 13, 2017

Useful scripts for Concurrent Managers

Useful scripts for Concurrent Managers



Thursday, August 10, 2017

Oracle apps R12 : Login Page is blank

Oracle apps R12 : Login Page is blank

Issue:

While launching URL getting the login page as Blank.

Solution:

Note from oracle metalink:1491845.1

Compile the jsp's manually using the below command,

Login to the apps server and execute below

$perl $FND_TOP/patch/115/bin/ojspCompile.pl --compile --flush -p 2

--> Check whether all the jsp's are getting compiled successfully

--> Restart the application services and 

--> Clear the browser cache

Wednesday, August 9, 2017

R12: Concurrent Manager Status


Very nice script to check status concurrent manager status

Taken from http://applicationsdba.blogspot.com/
DBA's can make use of in sql prompt to check the concurrent manager's statuses with out going to GUI.

Run the Below Code in sqlplus as APPS account. 
set verify off
set lines 256
set trims ON
set pages 60
col concurrent_queue_id format 99999 heading "QUEUE Id"
col concurrent_queue_name format a20 trunc heading "QUEUE Code"
col user_concurrent_queue_name format a30 trunc heading "Concurrent Queue Name"
col max_processes format 999 heading "Max"
col running_processes format 999 heading "Act"
col running format 999 heading "Run"
col target_node format a15 heading "Node"
col status format a12 trunc heading "Status"
col run format 9999 heading 'Run'
col pend format 9999 heading 'Pending'
col cmgr_program FOR a65;
SELECT 'Instance : '
    ||NAME instance_name
FROM   v$database;

Prompt ===========================
Prompt concurrent manager status
Prompt ===========================
SELECT q.concurrent_queue_id,
      q.concurrent_queue_name,
      q.user_concurrent_queue_name,
      q.target_node,
      q.max_processes,
      q.running_processes,
      running.run                               running,
      pending.pend,
      Decode(q.control_code, 'D', 'Deactivating',
                             'E', 'Deactivated',
                             'N', 'Node unavai',
                             'A', 'Activating',
                             'X', 'Terminated',
                             'T', 'Terminating',
                             'V', 'Verifying',
                             'O', 'Suspending',
                             'P', 'Suspended',
                             'Q', 'Resuming',
                             'R', 'Restarting') status
FROM   (SELECT concurrent_queue_name,
              COUNT(phase_code) run
       FROM   fnd_concurrent_worker_requests
       WHERE  phase_code = 'R'
              AND hold_flag != 'Y'
              AND requested_start_date <= SYSDATE
       GROUP  BY concurrent_queue_name) running,
      (SELECT concurrent_queue_name,
              COUNT(phase_code) pend
       FROM   fnd_concurrent_worker_requests
       WHERE  phase_code = 'P'
              AND hold_flag != 'Y'
              AND requested_start_date <= SYSDATE
       GROUP  BY concurrent_queue_name) pending,
      apps.fnd_concurrent_queues_vl q
WHERE  q.concurrent_queue_name = running.concurrent_queue_name(+)
      AND q.concurrent_queue_name = pending.concurrent_queue_name(+)
      AND q.enabled_flag = 'Y'
ORDER  BY Decode(q.application_id, 0, Decode(q.concurrent_queue_id, 1, 1,4, 2)),
         Sign(q.max_processes) DESC,
         q.concurrent_queue_name,
         q.application_id;


             



    This is as equivalent as Concurrent -> Manager -> Administer in forms GUI.