Tuesday, December 31, 2013

The explain plan for the statement:


Solution A:

1) Get the SQL_ID of he statement you are interested in (from AWR report or V$SQL or OEM etc).
2) Run the following script:

SQL> start $ORACLE_HOME/rdbms/admin/awrsqrpt.sql

3) Specify the begin/end snapshots and the sql_id.
4) A report will be produced containing the explain plan for the statement (if available)

Solution B:
  
This SQL only displays first child even if documentation says :
SQL> select * from TABLE(dbms_xplan.display_cursor('&SQL_ID'));

Below SQL displays execution plan for all child cursors for '&SQL_ID' with DEFAULT output format parameter.

select t.* from v$sql s
, table(dbms_xplan.display_cursor(s.sql_id,s.child_number)) t
where s.sql_id = '&SQL_ID' ;

To gather execution statistics, set statistics_level = ALL at session level or add hint /*+ gather_plan_statistics */ into SQL.
   see detail in $ORACLE_HOME/rdbms/admin/dbmsxpln.sql
    -> function display_cursor - format

select t.*
from v$sql s
   , table(dbms_xplan.display_cursor(s.sql_id,s.child_number,'ALLSTATS LAST')) t where s.sql_id = '&SQL_ID' ;


Solution C:

Since the program would have many SQL's we need to trace the entire programe run. TKPROF find the top SQL's and then run explain plan on them.
When Running the Concurrent Program
Click Debug Options (B)
Select the SQL trace checkbox - SQL Trace with Binds and Waits
and submit the request & possily let us know before the request completes.

tkprof SUPT_ora_696_IN.trc SUPT_ora_696_IN.trc.out explain=apps/apps print=10 sort='(prsela,exeela,fchela)' sys=no

Solution D:
Else you can run below sql when request is running and provide the output (if we know the conc program id/name )

SELECT a.request_id, d.sid, d.serial# ,d.osuser,d.process , c.SPID
FROM apps.fnd_concurrent_requests a,
apps.fnd_concurrent_processes b,
v$process c,
v$session d
WHERE a.controlling_manager = b.concurrent_process_id
AND c.pid = b.oracle_process_id
AND b.session_id=d.audsid
AND a.request_id = &Request_ID
AND a.phase_code = 'R';

+++++++++++++++++++++++++
How to Display All Loaded Execution Plan for a specific sql_id [ID 465398.1]


ID 795204.1 , ID 344196.1

Thursday, December 19, 2013

Http 500 : Internal Server Error When Login To A New Cloned Environment in R12:

Solution A:

1. Ensure that you have taken a backup of your environment,

2. run the following script on the cloned environment to synchronize the Workflow tables with APPS user

sqlplus apps/<apps password>

set serveroutput on size 100000;
declare
begin
WF_LOCAL_SYNCH.BULKSYNCHRONIZATION(
P_ORIG_SYSTEM => 'ALL',
P_PARALLEL_PROCESSES => null,
P_LOGGING => null,
P_RAISEERRORS => TRUE);
exception
when others then
dbms_output.put_line('sqlerrm = ' || sqlerrm);
end;
/
3. Retest the login issue.

4. Migrate the solution as appropriate to other environments.

Solution B:

1. Clear the browser cache and E-Business suite instance cache.

2. Compile all JSP files after sourcing the environment. Run the command

     cd $FND_TOP/patch/115/bin
     ojspCompile.pl --compile –flush

+++++++++++++++++++++++++++
ID 1314433.1, 813523.1 & 781413.1
Note: Unable To Open The E-Business Suite Login HTTP-404 Error. Error_log Shows "File does not exist: $INST_TOP/portal/OA_HTML/AppsLogin" (Doc ID 1177264.1)
+++++++++++++++++++++++++++

Tuesday, December 10, 2013

How to Speed Up Index Creation on FND_LOBS by indexing Only FND_HELP Data (Doc ID 397757.1)

The inability to rebuild the FND_LOBS intermedia index rarely merits a SEV1 as the sole purpose of this is to to provide
indexing on the online help that most customers can do without for awhile.  Problems can occur when generating this index because, as a side effect, the aflobbld.sql script tends to also index the FNDATTCH data and many customers find that wasteful.  These problems include the aflobbld.sql script (which is executed by the concurrent request "Rebuild Help Search Index") running for an extremely long time (over two hours) and the FND_LOBS_U1 and FND_LOBS_CTX taking enormous amounts of space (millions of rows).

It is possible to index JUST the FND_HELP entries.

SOLUTION:
1. Take a snapshot of the original state of the fnd_lobs entries for comfort sake:

select
FILE_FORMAT,
count(*)
from
fnd_lobs
group by FILE_FORMAT;
2. Set the file_format column of all rows other than FND_HELP so that they won't get indexed:

update fnd_lobs
set FILE_FORMAT = 'IGNORE'
where NVL(PROGRAM_NAME,'NULL') != 'FND_HELP' ;

commit;
3. Most versions of aflobbld.sql, as written, will only rebuild the FND_LOBS_CTX index if the status of the index is invalid or missing. To force the rebuilding of the index we may first have to drop it.

Check the status of the fnd_lobs_ctx index. If it is valid, then drop it.

select status
from all_indexes
where owner='APPLSYS'
and index_name='FND_LOBS_CTX'
and table_name='FND_LOBS';
If this returns a status of "valid", then "drop index applsys.fnd_lobs_ctx force"

4. Run aflobbld.sql.  $FND_TOP/sql This takes two parameters; the name of the applsys schema and the name of the apps schema. 
    Typically "@aflobbld.sql applsys apps".

5. The reasonably recent versions of fnd_gfm contain the function "set_file_format" which you can use to reset the values of the FILE_FORMAT column, based on the FND_MIME_TYPES table using the following update:

update fnd_lobs 
set file_format = fnd_gfm.set_file_format(file_content_type); 

commit;

One can verify the success of the above update by comparing the following reiteration to the previous result of step 1:

select 
FILE_FORMAT, 
count(*) 
from 
fnd_lobs 
group by FILE_FORMAT;


+++++++++++++++++++++++LOB Cleanup  on R12 instances(TS--> APPS_TS_MEDIA)
conn applsys/<pwd>
ALTER TABLE FND_LOBS MODIFY LOB (FILE_DATA) ( PCTVERSION 0 );
conn / as sysdba
ALTER TABLE APPLSYS.FND_LOBS ENABLE ROW MOVEMENT;
ALTER TABLE APPLSYS.FND_LOBS MODIFY LOB (FILE_DATA) (SHRINK SPACE);
ALTER INDEX APPLSYS.FND_LOBS_U1 REBUILD;
ALTER INDEX APPLSYS.FND_LOBS_N1 REBUILD;
$FND_TOP/sql/aflobbld.sql
SQL>   @$FND_TOP/sql/aflobbld.sql  applsys apps

How to Find Out Pending Concurrent Requests in 11i/R12:


SQL> SELECT DISTINCT far.request_id, SUBSTR (program, 1, 30), far.user_name,
                far.phase_code, far.status_code, phase, status,
                (CASE
                    WHEN far.phase_code = 'P' AND far.hold_flag = 'Y'
                       THEN 'Job is on Hold by user'
                    WHEN far.phase_code = 'P'
                    AND (far.status_code = 'I' OR far.status_code = 'Q')
                    AND far.requested_start_date > SYSDATE
                       THEN    'Job is scheduled to run at '
                            || TO_CHAR (far.requested_start_date,
                                        'DD-MON-RR HH24:MI:SS'
                                       )
                    WHEN far.phase_code = 'P'
                    AND (far.status_code = 'I' OR far.status_code = 'Q')
                    AND fcp.queue_control_flag = 'Y'
                       THEN 'ICM will run ths request on its next sleep cycle'
                    WHEN far.phase_code = 'P' AND far.status_code = 'P'
                       THEN 'Scheduled to be run by the Advanced Scheduler'
                    WHEN far.queue_method_code NOT IN ('I', 'B')
                       THEN    'Bad queue_method_code of: '
                            || far.queue_method_code
                    WHEN far.run_alone_flag = 'Y'
                       THEN 'Waiting on a run alone request'
                    WHEN far.queue_method_code = 'B'
                    AND far.status_code = 'Q'
                    AND EXISTS (
                           SELECT 1
                             FROM fnd_amp_requests_v farv
                            WHERE phase_code = 'P'
                              AND program_application_id =
                                                    fcps.to_run_application_id
                              AND concurrent_program_id =
                                             fcps.to_run_concurrent_program_id)
              THEN    'Incompatible request '
                  || (SELECT DISTINCT    farv.request_id
                                || ': '
                                || farv.program
                                || ' is Ruuning by : '
                                || farv.user_name
                      FROM fnd_amp_requests_v farv,fnd_concurrent_program_serial fcps1
                      WHERE phase_code = 'R'
                      AND program_application_id =fcps1.running_application_id
                      AND concurrent_program_id =fcps1.running_concurrent_program_id
                      AND fcps.to_run_application_id=fcps1.to_run_application_id
                      AND fcps.to_run_concurrent_program_id=fcps1.to_run_concurrent_program_id)
                    WHEN fcp.enabled_flag = 'N'
                       THEN 'Concurrent program is disabled'
                    WHEN far.queue_method_code = 'I' AND far.status_code = 'Q'
                       THEN 'This Standby request might not run'
                    WHEN far.queue_method_code = 'I' AND far.status_code = 'I'
                       THEN    'Waiting for next available '
                            || fcqt.user_concurrent_queue_name
                            || ' process to run the job. Estimate Wait time '
                            || fcq.sleep_seconds
                            || ' Seconds'
                    WHEN far.queue_method_code = 'I'
                    AND far.status_code IN ('A', 'Z')
                       THEN    'Waiting for Parent Request: '
                            || NVL (far.parent_request_id,
                                    'Could not locate Parent Request ID'
                                   )
                    WHEN far.queue_method_code = 'B' AND far.status_code = 'Q'
                       THEN 'Waiting on the Conflict Resolution Manager'
                    WHEN far.queue_method_code = 'B' AND far.status_code = 'I'
                       THEN    'Waiting for next available '
                            || fcqt.user_concurrent_queue_name
                            || ' process to run the job. Estimate Wait time '
                            || fcq.sleep_seconds
                            || ' Seconds'
                    WHEN far.phase_code = 'P' AND far.single_thread_flag = 'Y'
                       THEN 'Single-threaded request. Waiting on other requests for this user.'
                    WHEN far.phase_code = 'P' AND far.request_limit = 'Y'
                       THEN 'Concurrent: Active Request Limit is set. Waiting on other requests for this user.'
                 END
                ) reason
           FROM fnd_amp_requests_v far,
                fnd_concurrent_programs fcp,
                fnd_conflicts_domain fcd,
                fnd_concurrent_program_serial fcps,
                fnd_concurrent_queues fcq,
                fnd_concurrent_queue_content fcqc,
                fnd_concurrent_queues_tl fcqt
          WHERE far.phase_code = 'P'
            AND far.concurrent_program_id = fcp.concurrent_program_id
            AND fcd.cd_id = far.cd_id
            AND fcps.running_application_id(+) = far.program_application_id
            AND fcps.running_concurrent_program_id(+) = far.concurrent_program_id
            AND far.program_application_id = fcps.to_run_application_id(+)
            AND far.concurrent_program_id = fcps.to_run_concurrent_program_id(+)
            AND far.concurrent_program_id = fcqc.type_id(+)
            AND far.program_application_id = fcqc.type_application_id(+)
            AND fcq.concurrent_queue_id(+) = fcqc.concurrent_queue_id
            AND fcq.application_id(+) = fcqc.queue_application_id
            AND fcqt.concurrent_queue_id(+) = fcq.concurrent_queue_id
            AND fcqt.application_id(+) = fcq.application_id
       ORDER BY far.request_id DESC
/
+++++++++++++++++++++++++
select
fcr.request_id,
fcr.parent_request_id,
fu.user_name requestor,
to_char(fcr.requested_start_date, 'MON-DD-YYYY HH24:MM:SS') START_DATE,
fr.responsibility_key responsibility,
fcp.concurrent_program_name,
fcpt.user_concurrent_program_name,
decode(fcr.status_code,
'A', 'Waiting',
'B', 'Resuming',
'C', 'Normal',
'D', 'Cancelled',
'E', 'Error',
'F', 'Scheduled',
'G', 'Warning',
'H', 'On Hold',
'I', 'Normal',
'M', 'No Manager',
'Q', 'Standby',
'R', 'Normal',
'S', 'Suspended',
'T', 'Terminating',
'U', 'Disabled',
'W', 'Paused',
'X', 'Terminated',
'Z', 'Waiting') status,
decode(fcr.phase_code,
'C', 'Completed',
'I', 'Inactive',
'P', 'Pending',
'R', 'Running') phase,
fcr.completion_text
from
fnd_concurrent_requests fcr,
fnd_concurrent_programs fcp,
fnd_concurrent_programs_tl fcpt,
fnd_user fu,
fnd_responsibility fr
where
fcr.status_code in ('Q', 'I') and
fcr.hold_flag = 'N' and
fcr.requested_start_date > sysdate and
fu.user_id = fcr.requested_by and
fcr.concurrent_program_id = fcp.concurrent_program_id and
fcr.concurrent_program_id = fcpt.concurrent_program_id and
fcr.responsibility_id = fr.responsibility_id
order by
fcr.requested_start_date,  fcr.request_id;

-- Query to find concurrent request status related information
-------------------------------------------------------------------------------
SELECT fu.user_name                           "User ID",
       frt.responsibility_name                "Responsibility Used",
       fcr.request_id                         "Request ID",
       fcpt.user_concurrent_program_name      "Concurrent Program Name",
       DECODE(fcr.phase_code,
              'C',  'Completed',
              'P',  'Pending',
              'R',  'Running',
              'I',  'Inactive',
              fcr.phase_code)                 "Phase",
       DECODE(fcr.status_code,
              'A',  'Waiting',
              'B',  'Resuming',
              'C',  'Normal',
              'D',  'Cancelled',
              'E',  'Error',
              'F',  'Scheduled',
              'G',  'Warning',
              'H',  'On Hold',
              'I',  'Normal',
              'M',  'No Manager',
              'Q',  'Standby',
              'R',  'Normal',
              'S',  'Suspended',
              'T',  'Terminating',
              'U',  'Disabled',
              'W',  'Paused',
              'X',  'Terminated',
              'Z',  'Waiting',
              fcr.status_code)                "Status",
       fcr.request_date                       "Request Date",
       fcr.requested_start_date               "Request Start Date",
       fcr.hold_flag                          "Hold Flag",
       fcr.printer                            "Printer Name",
       fcr.parent_request_id                  "Parent Request ID"
       -- fcr.number_of_arguments,
       -- fcr.argument_text,
       -- fcr.logfile_name,
       -- fcr.outfile_name
  FROM fnd_user                    fu,
       fnd_responsibility_tl       frt,
       fnd_concurrent_requests     fcr,
       fnd_concurrent_programs_tl  fcpt
 WHERE fu.user_id                 =  fcr.requested_by
   AND fcr.concurrent_program_id  =  fcpt.concurrent_program_id
   AND fcr.responsibility_id      =  frt.responsibility_id
   AND frt.LANGUAGE               =  USERENV('LANG')
   AND fcpt.LANGUAGE              =  USERENV('LANG')
   -- AND fcr.request_id = 30302146  -- <change it>
   AND fcpt.user_concurrent_program_name = 'INV Item Copy'  -- <change it>
 ORDER BY fcr.request_date DESC;
++++++++++++To know more details on Specific request+++++++++++

select /*+ CHOOSE*/
      'Node Name..............................: ' || q.node_name                          || chr(10) ||
      'Req id.................................: ' || Request_Id                           || chr(10) ||
      'Requestor..............................: ' || User_Name                            || chr(10) ||
      'Manager................................: ' || Q.User_Concurrent_Queue_Name         || chr(10) ||
      'Status code............................: ' || decode(status_code,'A', 'Waiting','B',
      'Resuming','D', 'Cancelled','E', 'Error', 'G', 'Warning', 'H',
      'On Hold', 'R', 'Normal','S', 'Suspended', 'T', 'Terminating',
                      'W', 'Paused', 'X','Terminated', status_code)                                       || chr(10) ||
      'Phase code.............................: '  || decode(phase_code, 'C', 'Completed',
      'I', 'Inactive', 'P', 'Pending', 'R', 'Running', phase_code)                        || chr(10) ||
      'Priority...............................: ' || Fcr.priority                         || chr(10) ||
      'Program................................: ' || Fcp.User_Concurrent_Program_Name     || chr(10) ||
      'Time so far ...........................: ' || trunc((sysdate-Fcr.actual_start_date)*24*60,2)||' min'|| chr(10) ||
      'Avg execution time in  30 days.........: ' ||  trunc(AVG_TIME,2)  ||' min'          || chr(10) ||
      'Max execution time in 30 days..........: ' ||  trunc(MAX_TIME,2)  ||' min'         || chr(10) ||
      'Fastest execution Time in 30 days......: ' ||trunc( MIN_TIME,2) || ' min'          || chr(10) ||
      'Number of executions in last 30 days...: ' ||occurance                             || chr(10) ||
      'ClientPID..............................: ' || Fcr.OS_PROCESS_ID                    || chr(10) ||
      'ServerPID..............................: ' || Fcr.ORACLE_PROCESS_ID     || chr(10) ||
      'Arguments passed to the program .......: ' ||Fcr.argument_text
                     from apps.Fnd_Concurrent_Requests Fcr,
    apps.Fnd_Concurrent_Programs_vl Fcp,
    apps.Fnd_Oracle_Userid O,
    apps.Fnd_Concurrent_Processes P,
    apps.Fnd_Concurrent_Queues_vl Q,
    apps.Fnd_User,(select
    concurrent_program_id
    ,count(concurrent_program_id) occurance
    ,min(actual_completion_date-actual_start_date)*24*60 MIN_TIME
    ,max(actual_completion_date-actual_start_date)*24*60 MAX_TIME
    , avg(actual_completion_date-actual_start_date)*24*60 AVG_TIME
    from apps.fnd_concurrent_requests
    where status_code='C' and phase_code='C'
    and trunc(actual_start_date)>trunc(sysdate-30)
    group by concurrent_program_id
    having max(actual_completion_date-actual_start_date)*24*60 >5) CREQ
    where Controlling_Manager = Concurrent_Process_ID
    and ( P.Concurrent_Queue_ID=Q.Concurrent_Queue_ID AND P.Queue_Application_ID = Q.Application_ID )
    and O.Oracle_Id = Fcr.Oracle_Id and Request_Id in ('&REQID')
    and( Fcr.Program_Application_Id=Fcp.Application_Id
    and  Fcr.Concurrent_Program_Id=Fcp.Concurrent_Program_Id)
    and Requested_By = User_Id
    and Phase_Code = 'R' and status_code in ('R','T')
    --adding joins with new
    and Fcr.Concurrent_Program_Id=CREQ.Concurrent_Program_Id(+)
                                          Order By   Q.User_Concurrent_Queue_Name,q.node_name, Actual_Start_Date,Request_Id;
+++++++++++++++++++++

Oracle Applications Shortcut Keys in R12:

Function
Hot Key
Clear Field
F5
Clear Form
F8
Clear Record
F6
Clear Block
F7
Commit / Save
Ctrl-S
Delete Record
Ctrl-↑
Down
Duplicate Field
Shift-F5
Duplicate Record
Shift-F6
Edit
Ctrl-E
Enter Query
F11
Execute Query
Ctrl-F11
Exit
F4
Insert Record
Ctrl-↓
List of Values
Ctrl-L
Next Block
Shift-PgDn
Next Record
Previous Block
Shift-PgUp
Previous Field
Shift-Tab
Previous Record
Next Field
Tab
Print
Ctrl-P
Scroll Down
PgDn
Scroll Up
PgUp
Show Keys
Ctrl-K
Up

Monday, December 9, 2013

How To create read only responsibility in R12:

There are three methods:

1. Standard method

1. Identify the menu that is attached to the responsibility, for example GL super user.
2. Identify the form functions that are attached to this menu.
3. Now create a new form function exactly similar to the standard one but with the option
QUERY_ONLY="YES" in the location "Application"-->"function"-->"Form"-->"Parameter".
4. This makes the function read only.
5. Now create a new menu with these read-only functions and attach the menu to the new responsibility.

2. Create a read-only DB user

1. Create the user for the required schema:

SQL> connect system/manager
SQL> create user <your_user> identified by <your_user_password> default tablespace
<tablespace_to_assign_to_user> temporary tablespace temp;

2. Grant connect and resource privileges to your user:

SQL> connect system/manager
SQL> grant connect, resource to <your_user>;

3. Use the following select statements to generate a script that will grant privileges on APPS objects to your user.

Note the following:

a. This select statement should generate a script that will grant almost all required permissions to a user called MYUSER.
Note: please replace MYUSER with <your_user> in the following SQL statements.


b. This select statement is a guide only and may not work for some EBS versions. You should work with your DBA to enhance it according to your requirements.

c. Run the two scripts as SYS user.


SELECT 'GRANT '
|| DECODE(O.OBJECT_TYPE,'TABLE','SELECT',
'VIEW','SELECT',
'EXECUTE')
|| ' ON '
|| DECODE(O.Owner,'PUBLIC','',O.Owner || '.')
|| '"'
|| O.OBJECT_NAME
|| '"'
|| ' TO MYUSER;' COMMAND
FROM ALL_OBJECTS O
WHERE O.OBJECT_TYPE IN ('TABLE','PACKAGE','PACKAGE BODY','PROCEDURE', 'VIEW','FUNCTION')
UNION
SELECT 'GRANT '
|| DECODE (O2.object_type, 'TABLE', 'SELECT',
'VIEW', 'SELECT',
'EXECUTE')
|| ' ON '
|| DECODE(O.Owner,'PUBLIC','',O.Owner || '.')
|| '"'
|| O.object_name
|| '"'
|| ' TO MYUSER;' COMMAND
FROM ALL_OBJECTS O, ALL_OBJECTS O2, DBA_SYNONYMS S
WHERE O.object_type = 'SYNONYM'
AND O.object_name = S.synonym_name
AND O2.object_name = S.table_name
AND O2.OBJECT_TYPE IN ('TABLE','PACKAGE','PACKAGE BODY','PROCEDURE', 'VIEW','FUNCTION')

4. Use the following select statement to generate a script that will create synonyms in <your_user> schema for all objects owned by APPS.

SELECT 'CREATE SYNONYM MYUSER.'
|| O.OBJECT_NAME
|| ' FOR APPS.'
|| O.OBJECT_NAME
|| ';' COMMAND
FROM DBA_OBJECTS O
WHERE O.Owner = 'APPS'

5. In Oracle apps, register the new DB users as a user and Datagroup (Similar to apps)

a. Register Oracle User

Naviate to (N)Security-->Oracle-->Register
Database User Name = <your_user>
Password = <your_password>
Privilege = Enabled
Install Group = 0
Description = Read-only Application User

b.Register a Data Group

Navigate to (N)Security-->Oracle-->DataGroup
Data Group = <your_group>
Description = Read-only Data Group
Click on "Copy Applications from" and pick Standard data Group, then change the ORACLE ID from "APPS" to "<your_user>

6. Create a responsibility and attach it to the new created data group.

3. Modify Custom.pll

Refer to Note 363298.1 - 'How To Make All The Responsibilities Read Only For A User to develop your own custom code'.


+++++++++++++++Doc ID 1290228.1+++++++++++++++

Friday, November 29, 2013

Problem : tnsping service test fails

Error :


1. TNSPING test under generic services in Enterprise Manager fails.
2. Manually running tnsping from the bin directory of the agent home (which hosts the beacon) fails with the following error:-

[oracle@svruatebsdl1 SVRUAT_svruatebsdl1]$ tnsping SVRPRD
TNS Ping Utility for Linux: Version 11.1.0.7.0 - Production on 06-NOV-2013 20:50:39
Copyright (c) 1997, 2008, Oracle.  All rights reserved.
Message 3511 not found; No message file for product=network, facility=TNSMessage 3512 not found; No message file for product=network, facility=TNSAttempting to contact ( (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=svrprdebsdl1.singiri.com)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=SVRPRD) (INSTANCE_NAME=SVRPRD)))
TNS-12533: Message 12533 not found; No message file for product=network, facility=TNS

Solution A:

The following workaround is effective, but will not record a corrective action in the agent inventory as should be considered an inferior solution, consequently:

Copy the missing files from an Oracle database install hosted on a similar operating system as the agent hosting the beacon.  Note that the tnsping in the 11.1.0.1 agent home is 11.1.0.7 so ideally copy the files from an 11.1.0.7 database home.

1. Login to the server hosting the Enterprise Manager repository database.

2. Extract the following:

<ORACLE_HOME>/network/mesg/tnsus.msg
<ORACLE_HOME>/network/mesg/tnsus.msb

3. Login to the agent server and copy the files into:

<AGENT_HOME>/network/mesg/tnsus.msg
<AGENT_HOME>/network/mesg/tnsus.msb

4. Execute the tnsping test to verify.

Solution B:

Upgrade to Enterprise Manager 12.1.0.3 Cloud Control.
+++++++++++++++++++++++++
Error:

The listener is down: Message 3509 not found; No message file for product=network, facility=TNS

Solution:

To implement the solution, execute the following steps:
$ chmod 775 $ORACLE_HOME/network/mesg
$ cd mesg
$ chmod 666 *

Note: The ORACLE_HOME referred is the ORACLE_HOME from where the listener is started.

+++++++++++++++

(Doc ID 1454550.1) 

++++++++++Manjunatha++++++++++

How To Install the Vertex Quantum (Tax Q) Monthly Update File (Doc ID 1521407.1)

Goal:
How do I install the monthly update file from Vertex for the Tax Q database for use with Oracle Fusion Payroll (US)?
  
Vertex:
  
In the United States and Canada, the legislation rules and tax routines are maintained by Vertex Inc., an independent, third party software company. This taxation data is accessed by the Payroll calculation engine via software provided by Vertex Inc., which is redistributed by Oracle.

The main file you will receive directly from Vertex is the monthly rate data update file, qfpt.dat.  Delivered with the Monthly Vertex Update, is the

Vertex Payroll Tax Q Series Calculation Guide -  This contains the rate and calculation information provided by Vertex in a PDF document. You can view the Vertex Payroll Tax Q Series Calculation Guide for this information.
  
For Real time Ex:

1. Go to www.vertexinc.com

2. Click on myVertex

3. Login

4. Click on Downloads

5. Under 'Payroll Tax Q Series - Oracle'

    click on Data Update File and save

6. Unzip file to local directory

7. Upload the extracted file, qfpt.dat, to a directory in the server

    Example:
        $VERTEX_TOP/data
[oracle@svrprdebsal1 ~]$ cd /d01/oracle/SVRPROD/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.1.0

[oracle@svrprdebsal1 3.1.0]$ mv qfpt.dat qfpt.dat_bkp06-Nov13

[oracle@svrprdebsal1 3.1.0]$ cd ../../quantum/
[oracle@svrprdebsal1 quantum]$ cp -rp data data_06-Nov13
[oracle@svrprdebsal1 quantum]$ du -sh data  data_06-Nov13

8. Navigate to $VERTEX_TOP/utils

[oracle@svrprdebsal1 data]$ cd $PAY_TOP/vendor/quantum_versions/3.1.0/utils

9. Execute vprtmupd

10. Select '1. - Update Payroll Tax Database'

11. Enter Data Source: ../data

    Example:
        Enter Data Source: ../data OR the Full path to the Quantum data directory

12. Enter the path to the update file:

    (this is where you uploaded the qfpt.dat file to)

Example:
/amer/oracle/prdmx01/home/patches

13. When you see the following message

    "Payroll Tax Monthly Update successful.
     Press Enter to continue..."

    Hit 'Enter'

14. Then Select '2. - Exit Program'

For Step 9 to 14 follow below:

[oracle@svrprdebsal1 utils]$ ./vprtmupd

Vertex Payroll Tax Q Series - Monthly Update Program

Version 3.1.0    2012/09/16

Copyright (c) Vertex Inc.  1994-2012.  All Rights Reserved.

WARNING! The update process will destroy the contents of the
current database before it creates a new one.  Please make
a backup before proceeding.

Select a Monthly Update Function
--------------------------------
1.  - Update Payroll Tax Database
2.  - Exit Program

Select: 1

Beginning Payroll Tax Monthly Update Process.

Enter Data Source:   /d01/oracle/SVRPROD/apps/apps_st/appl/pay/12.0.0/vendor/quantum/data
Enter the path to the update file:  /d01/oracle/SVRPROD/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.1.0
Updating database. Please wait. It may take a while...

Payroll Tax Monthly Update successful.
Press Enter to continue...

WARNING! The update process will destroy the contents of the
current database before it creates a new one.  Please make
a backup before proceeding.

Select a Monthly Update Function
--------------------------------
1.  - Update Payroll Tax Database
2.  - Exit Program

Select: 2

Finished.
=======================================
How To Install the Vertex Quantum (Tax Q) Monthly Update File (Doc ID 1521407.1)
How To Verify Vertex Quantum Data File Version (Doc ID 264290.1)
NOTE:735988.1

========================================