Monday, June 23, 2014

Excel4apps (GL- Wand) Setup for EBS R12 :

GL Wand for Oracle ( Excel-based financial reporting solution for Oracle )

An award-winning, Excel-based financial reporting solution for finance professionals using Oracle e-Business Suite 11i or 12, GL Wand enables highly efficient and secure financial reporting, shorter month ends, and faster refreshes with ad-hoc inquiry and drill downs........ :) :) :)

         http://www.excel4apps.com/

Both Admin & Web node :

had appl_top/java_top on both nodes ,

~]$unzip glwand5.5.0.zip

~]$ls -la excel4apps*
-rw-r--r-- 1 applmgr oinstall 5472391 Sep 13  2013 excel4apps_wands_oracle_r12.zip

unzip excel4apps_wands_oracle_r12.zip

Archive:  excel4apps_wands_oracle_r12.zip
  inflating: e4awand_oracle_appl_top.zip
  inflating: e4awand_oracle_java_top.zip

~]$cp -rp e4awand_oracle_appl_top.zip  $APPL_TOP
 ~]$cd $APPL_TOP
unzip e4awand_oracle_appl_top.zip

~]$cp -rp e4awand_oracle_java_top.zip  $JAVA_TOP
cd $JAVA_TOP
unzip e4awand_oracle_java_top.zip

 unzip on /home/applmgr

~]$ unzip excel4apps_wands_oracle_r12.zip

  inflating: e4awand_oracle_appl_top.zip
  inflating: e4awand_oracle_java_top.zip

~]$cp -rp e4awand_oracle_appl_top.zip  $APPL_TOP

~]$cd $APPL_TOP
~]unzip e4awand_oracle_appl_top.zip

~]$cp -rp e4awand_oracle_java_top.zip  $JAVA_TOP

cd $JAVA_TOP
 ~]unzip e4awand_oracle_java_top.zip


/u01/app/oracle/apps/apps_st/comn/java/classes/com
ls -latr excel4apps
total 24
drwxr-xr-x  3 applmgr oinstall 4096 Sep 13  2013 oracle
drwxr-xr-x  2 applmgr oinstall 4096 Sep 13  2013 applet
drwxr-xr-x  6 applmgr oinstall 4096 Sep 13  2013 .
drwxr-xr-x 12 applmgr oinstall 4096 Apr 27 10:50 ..
drwxr-xr-x  2 applmgr oinstall 4096 Apr 27 13:56 install
drwxr-xr-x  3 applmgr oinstall 4096 Apr 28 21:43 servlet

The Excel4apps Wands communicate with Oracle via a Java servlet. The servlet needs to be configured using Oracle’s standards as documented in note
“387859.1 - UsingAutoConfig to Manage System Configurations in Oracle Applications Release 12” on Oracle’s support website.
The process involves creating a copy of the applicable template file, adding the Excel4apps Wands entries to the file, running AutoConfig and bouncing the   Applications tier.

cd $FND_TOP/admin/template/custom

orion_web_xml_1013.tmp Backup then edit hte file

<!-- Excel4apps Wands 5 Alias -->
<servlet>
<servlet-name>excel4apps</servlet-name>
<servlet-class>com.excel4apps.servlet.wand.oracle.Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>excel4apps</servlet-name>
<url-pattern>/excel4apps</url-pattern>
</servlet-mapping>

<!-- OC4J Session Timeout -->
        <session-config>
                <session-timeout>%s_oc4j_sesstimeout%</session-timeout>
        </session-config>

Run Autoconfig  On order Admin & Web node :

After successfull , Verify the same
cd $INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html

 grep -i excel4apps orion-web.xml

<!-- Excel4apps Wands 5 Alias -->

<servlet-name>excel4apps</servlet-name>
<servlet-class>com.excel4apps.servlet.wand.oracle.Servlet</servlet-class>
<servlet-name>excel4apps</servlet-name>
<url-pattern>/excel4apps</url-pattern>


http://<hostname>.<domain>:8000/OA_HTML/excel4apps // it should dispaly the Excel4apps Wands Server Versions (23-Jun-2014 3:18:19 & v5.5.0)

Load Excel4apps OAF pages:

Option A - Running the script: on both nodes
1. Navigate to the $JAVA_TOP/com/excel4apps/install
]$ sh load_oafpages_r12.sh


Execute the script. Please note this is a bash shell script.
o It will prompt for database connection information.
o Before the script runs it will display the information that you captured and ask if you wish to continue. You can cancel at this point if required.

-->  If you choose to continue, the script will first delete any existing Excel4apps OAF pages. This will display an error if there are no pages to delete. This error is normal and it can be ignored if received.
-->  The script will then load the Excel4apps OAF pages using the XMLImporter utility.

-->  The import steps should complete successfully and a message should be displayed indicating that the pages were imported.

Verification :

sqlplus apps/apps

SQL>set serveroutput on;

begin
jdr_utils.listdocuments('/com/excel4apps',TRUE);
end;
/

Printing contents of /com/excel4apps recursively
/com/excel4apps/oracle/apps/xxe4a/wands/webui/WandHomePG
/com/excel4apps/oracle/apps/xxe4a/wands/webui/WandAppletPG

PL/SQL procedure successfully completed.

SQL>
begin
jdr_utils.printDocument('/com/excel4apps/oracle/apps/xxe4a/wands/webui/WandHomePG');
end;
/

<?xml version='1.0' encoding='UTF-8'?>
<page xmlns:jrad="http://xmlns.oracle.com/jrad"
xmlns:oa="http://xmlns.oracle.com/oa" xmlns:ui="http://xmlns.oracle.com/uix/ui"
version="9.0.3.8.12_1330" xml:lang="en-US"
xmlns:user="http://xmlns.oracle.com/jrad/user"
xmlns="http://xmlns.oracle.com/jrad"
file-version="$Header$">
..........

begin
jdr_utils.printDocument('/com/excel4apps/oracle/apps/xxe4a/wands/webui/WandAppletPG');
end;
/
<?xml version='1.0' encoding='UTF-8'?>
<page xmlns:jrad="http://xmlns.oracle.com/jrad"
xmlns:oa="http://xmlns.oracle.com/oa" xmlns:ui="http://xmlns.oracle.com/uix/ui"
version="9.0.3.8.12_1330" xml:lang="en-US"
xmlns:user="http://xmlns.oracle.com/jrad/user"
xmlns="http://xmlns.oracle.com/jrad"
file-version="$Header$">
....................

Load Application Components :
Load Application Components
1. Log on to the Oracle system and select a responsibility like System Administrator that has permission to register an application.
2. Navigate to the following menu: Application > Register.
3. Create a new application as follows:

Application : Excel4apps
Short Name  : XXE4A
Basepath    : XXE4A_TOP


4. Navigate to the following menu :Concurrent --->program ---> Executable

5. Create  a new Executable As follow :

Executable XXE4A
Short Name XXE4A
Application Excel4apps
Execution Method PL/SQL Stored Procedure
Execution File Name XXE4A


Option A - Using the FNDLOAD utility:

1. Navigate to the $JAVA_TOP/com/excel4apps/install folder.
2. Execute the following two commands replacing the $apps_password variable with your APPS password.

$FND_TOP/bin/FNDLOAD apps/"$apps_password" O Y UPLOAD
$FND_TOP/patch/115/import/afsload.lct XXE4A_WANDS_MENU.ldt
$FND_TOP/bin/FNDLOAD apps/"$apps_password" O Y UPLOAD $FND_TOP/patch/115/import/afscursp.lct XXE4A_WANDS_RESP.ldt
FNDLOAD should complete successfully.


Verification:

1. If you ran the process using the FNDLOAD utility, you should check the log file to make sure that there were no errors.
2. Check that the configuration components exist:
o Log on to the Oracle system and select a Responsibility like System Administrator that has permission to configure application components.
o Query the configuration components mentioned above and ensure that they all exist and are configured correctly.
3. Assign the Excel4apps Wands Responsibility to an Oracle user.
Grant following users - Excel4apps Wands - Responsibility
SVREDDY
SNREDDY
SMREDDY

4. Log on to Oracle using a browser with that Oracle user.
5. Launch the application by clicking on the Excel4apps Wands Responsibility.
Step 13 Log on for the first time
1. Log on to Oracle from a browser using the user that you assigned the Excel4apps Wands Responsibility to.
2. Launch the Excel4apps Wands application. This will launch a Java Applet and load the Excel4apps Wands toolbar into Microsoft Excel.
3. Request or enter a license key.
o You may be prompted to request a license key or enter one received previously.
o Additional details on requesting and entering license keys can be found in the Administrator section of the online user guide under the “System Administrator Options” section.

4. Configure system administrator options.
1. Log on to Oracle from a browser using the user that you assigned the Excel4apps Wands Responsibility to.
2. Launch the Excel4apps Wands application. This will launch a Java Applet and load the Excel4apps Wands toolbar into Microsoft Excel.
3. Request or enter a license key.
o You may be prompted to request a license key or enter one received previously.
o Additional details on requesting and entering license keys can be found in the Administrator section of the online user guide under the “System Administrator Options” section.

4. Configure system administrator options.

Required settings: The first time you log on you must flag one (or more) Oracle user as an Excel4apps Wands system administrator(s). Once the license key is entered and saved, only this user(s) will have permissions to administer the installation, change options and set permissions for other users.
o Optional settings: Optionally configure additional system administer options to meet specific environment needs as described in the Administrator section of the online user guide under the “System Administrator Options” section.
Step 14 Unlocking the System Administrator Functionality

The first user that logs on to the Excel4apps Wands will be given the opportunity to enter a license key and then to activate users and set the system options. At least one user must be flagged as a System Administrator although you may assign more than one.
From then on, only a user flagged as a System Administrator will be able to access the menu option to administer the Excel4apps Wands system settings and to maintain the users. If your System Administrator is not available or leaves the company you might need to unlock access to the system administration functionality. If this becomes a requirement please contact us at support@excel4apps.com and we will provide you with the necessary steps to assign another user as a System Administrator.
++++++++++++++++++++++++++++++++

Sunday, June 22, 2014

Install Quantum for Oracle Payroll (EBS R12.1.3)

About Vertex Payroll Tax Q Series
Vertex Payroll Tax Q Series (PTQ) maintains tax rates, rules, and regulations and
enables you to enter special tax considerations that are applicable to your payroll
run.
When you send the required information to PTQ, it calculates the federal, state,
Canadian, some U.S. territories, and local taxes on all regular and supplemental
wages. The product's programming logic takes into account factors such as:
• Multiple work locations per employee
• Specific net pay
• Advanced vacation pay
• Tips
• IRS qualified benefit plans
• All reciprocal agreements among states, cities, and counties
For PTQ customers only, Vertex offers a separate data file that enables you to
calculate PAYE and NICs taxes in the United Kingdom.
Vertex updates the data required for accurate payroll calculations every month.
You can maintain the product by loading a DVD or downloading files from myVerte
+++++++++++++++EBS R12++++++++++++++++

1. Create following directory structure in SVRUAT Admin Tier..

/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum
2. Copy ‘pyvendor.zip’ file from ‘/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/lib’ to ‘/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions’
Note: Please do the Quantum Payroll setups after applying recent HRMS Delta patch as ‘pyvendor.zip’ will get updated with it.
3. Unzip ‘pyvendor.zip’ file. It will further create platform specific zip files. Unzip respective platform zip file (e.g. REDHAT50.zip) and it will create directory called ‘3.0.2’ (or recent quantum version specific)

4. Create following symbolic link.

ln -s /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.0.2 /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum

5. Take a backup of ‘$FND_TOP/usrxit/devenv.env’. Uncomment following lines from file.
# 3) Any user-defined environment variables (like VND_LINK in the example
#    above) must be set and exported in this file.  There is a special
#    section for this purpose below.
#
#    Example:
#
#    Needed when linking in 3rd Party Software
 
 VND_VERTEX='$(PAY_TOP)/vendor/quantum'
    VND_LINK='$(VND_VERTEX)/lib/libvprt.a \
              $(VND_VERTEX)/lib/libqutil.a \
              $(VND_VERTEX)/lib/libloc.a \
              $(VND_VERTEX)/lib/libcb63.a'
    VNDPAYSL='$(PAY_TOP)/lib/py3c.o $(PAY_TOP)/lib/py3v.o $(VND_LINK)'
    VNDPAYPL='$(PAY_TOP)/lib/py3c.o $(PAY_TOP)/lib/py3v.o $(VND_LINK)'
    export VND_VERTEX VND_LINK VNDPAYPL VNDPAYSL
#
 
6. Relink the Oracle Payroll executable PYUGEN using adrelink.

$ adrelink force=y ranlib=y "pay PYUGEN"

Ensure that the adrelink completed successfully by checking the log file.

Set your PATH and LD_LIBRARY_PATH environment variables to include the directories where the Vertex executables and libraries are installed.
export LD_LIBRARY_PATH=/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.0.2/lib:$LD_LIBRARY_PATH

7. Download recent Monthly Quantum update (e.g. QFPTDNLD0213.zip). This is available at

‘https://my.vertexinc.com/’ --> Provide registered username &Pwd

Note :Go to ‘DOWNLOADS’ section and download recently released Payroll data file from ‘Payroll Tax Q Series – Oracle’ section.

8. Unzip given file on server to below location
#cd $PAY_TOP/ vendor/Vertex_Update
#unzip QFPTDNLD0614.ZIP
#  ls -ltr /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/Vertex_Update/
drwxr-xr-x 2 oracle dba     4096 May 19 13:16 data
drwxr-xr-x 2 oracle dba     4096 May 19 13:17 data320
drwxr-xr-x 2 oracle dba     4096 Jun 17 13:05 docs
-rw-r--r-- 1 oracle dba 22915041 Jun 19 13:18 QFPTDNLD0614.ZIP

9. Copy ‘qfpt.dat’ file from unzipped data320 directory to

#cp qfpt.dat /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.2.0

10. Execute ‘cbmaint’ from ‘/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.0.2/utils’  location. This utility will create a quantum payroll database files. After ‘cbmaint’ is run you should be able to successfully update the taxes using ‘vprtmupd’ utility.

Choose option 1 & 3 ... This will create database files for GeoCoder and payroll Tax.

Vertex Payroll Tax Q Series - ISAM Database Maintenance Program

Version 3.2.0 2013/07/12

Copyright 1999-2014 Vertex Inc.


Select an ISAM Maintenance Function
-----------------------------------
1.  - Create Database
2.  - Migrate Database
3.  - Reindex Database

9.  - Exit Program

Select: 1

Select a Database to Create
----------------------------
1.  - GeoCoder Database
2.  - Payroll Tax Database

3.  - All Databases

9.  - Main Menu

Select: 3

11. Execute ‘vprtmupd’ utility from ‘/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.0.2/utils’ location.

 cd $PAY_TOP/vendor/quantum_versions/3.2.0/utils

[oracle@svruatebsal1 utils]$ vprtmupd


Vertex Payroll Tax Q Series - Monthly Update Program

Version 3.2.0    2013/07/12

Copyright (c) Vertex Inc.  1994-2013.  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/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum/data
Enter the path to the update file:  /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.2.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.

(Or)
 logon to the application as US HRMS manager responsibility and run “Quantum Program Update Installer”. Submit "Quantum Data Update Installer" program will update the Payroll Tax to Database.

Parameters:
Enter Data Source:   /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum/data
Enter the path to the update file:  /d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum_versions/3.2.0/


[oracle@svruatebsal1 utils]$ !sq
sqlplus apps/ptc7apps

SQL*Plus: Release 10.1.0.5.0 - Production on Thu Jun 19 13:44:29 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>  select ss_ee_wage_limit  from pay_us_federal_tax_info_f where sysdate between effective_start_date and effective_end_date and ss_ee_wage_limit is not null ;

SS_EE_WAGE_LIMIT
----------------
          117000 //this value should be same for 2014

12. Register the Quantum Data Files location.

SQL> select PARAMETER_VALUE from PAY_ACTION_PARAMETERS where PARAMETER_NAME = 'TAX_DATA';

If it does not displays PARAMETER_VALUE for TAX_DATA as quantum data file location then we need to manually insert into table as…

insert into pay_action_parameters values ('TAX_DATA', '/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum/data');
commit;

SQL> select PARAMETER_VALUE from PAY_ACTION_PARAMETERS where PARAMETER_NAME = 'TAX_DATA';
PARAMETER_VALUE
--------------------------------------------------------------------------------
/d01/oracle/SVRUAT/apps/apps_st/appl/pay/12.0.0/vendor/quantum/data
================================================                                                        http://www.idbasolutions.com/en/oracle-ebusiness/reinstall-upgrade-vertex.html                                             https://my.vertexinc.com/
================================================
Q> How can I determine the version of Payroll Tax Q I am using?
The easiest way is to run the DIAGNOS utility. The Vertex Payroll Tax Q series version will appear at the beginning of the first screen. You do not need to test the connection. To find out how to run the Diagnos utility for your environment look in the Payroll Tax Q series Administration Guide- chapter 3 or 4 for Windows and Unix, chapter 5 for As/400 environment under the section "Verifying that the databases (or tables) are created and populated correctly".

Another way is to generate an Employee Before and After report. The Payroll Tax Q series version number is in the header of the report.

Q> The May data update file contains two data directories, where do I get my update files from for 3.2.0?

Resolution :

Effective with release 4.0 (starting with the May data update continuing until 3.2.0 is retired) there will be two data files (qfpt.dat) produced each month.
The following applies to Payroll Tax Q and Payroll Tax Q Enhanced Integration only:
If you are on version 3.2.0 of Payroll tax Q series you need to load the qfpt.dat file from the data320 directory and the compress.txt, geomast4.vdf, staxzip4.vdf and ptaxzip4.vdf from the data directory.
If you are on 3.1.2 or 3.2.1 you would load the qfpt.dat, compress.txt, geomast4.vdf, staxzip4.vdf and ptaxzip4.vdf from the data directory.
If you are on 4.x then you would load the qfpt.dat, compress.txt, geomast5.vdf, and taxzip5 from the data directory.

The following applies to Payroll tax Q- Oracle only:
If you are on version 3.2.0 of Payroll tax Q series you need to load the qfpt.dat file from the data320 directory
If you are on 3.1.2, 3.2.1 or 4.X  you need to load the qfpt.dat file from the data directory.

Q> What is the difference between sales and use tax?

Generally, a sales tax occurs when a transaction takes place within a single state's boundaries (intrastate).  A use tax occurs when a transaction takes place between two different states (interstate).

Monday, June 16, 2014

Rman Cold , Hot Backup & Recover :

Cold Backup :

Rman target /

Rman > spool log to ‘/mnt/sas/SVRQAT/cold_backup.log’;

run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
allocate channel t5 type disk;
allocate channel t6 type disk;
backup as compressed backupset format='/nfs/db_rman_bkp/SVRQAT/%U' database;
backup format='/nfs/db_rman_bkp/SVRQAT/Tp_cntl_%Y%M%D_%d_%s_%p.ctl' current controlfile;
release channel t1;
release channel t2;
release channel t3;
release channel t4;
release channel t5;
release channel t6;
}


Recovery :
1.Restore the old controlfile from rman , mount the database with old controlfile
and run following script.

Solution A:

run {
      startup mount;
      set until time "to_date('16-JUN-2014 22:08:00','DD-MON-YYYY HH24:MIS')";
      restore database;
      recover database;
      alter database open resetlogs;
}

Solution B:

RMAN> run {
restore database;
recover database noredo;
alter database open resetlogs;
}

Sunday, June 15, 2014

Open Database failed - DATAFILE NEEDS MORE RECOVERY TO BE CONSISTENT ORA-1194 ORA-1547 ORA-1110

Assuming All Datafiles was either successfully restored, and/or recovery was done with existing database datafiles.
Then open the database failed with errors like:

Error :
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/V1123/system01.dbf'

Scenario 1: Current Controlfile is available

This shows the Information whats needed for recovery, usually you will not see the errors as above at open database, but nevertheless giving this example.

1) Ensure Instance is Mounted and ALL Datafiles ONLINE
  
   If the CURRENT CONTROLFILE is used then you can run recover database, and it will
   apply all archivelogs, and the online 'current' redolog if available, and finally you can open database

   Example:
 

SQL> select name, controlfile_type from v$database ;

   NAME      CONTROL
   --------- -------
   V1123     CURRENT
  
   SQL> recover automatic database ; 
    ..
   Media recovery complete    
   SQL> alter database open

Scenario 2: Backup Controlfile is used for recovery

Please see steps below showing you an example getting the errors like ORA-1194, ORA-1547, ORA-1110,
and how to verify status of Controlfile, Datafiles, Logfiles, and finally recover and open database.



SQL> select name, controlfile_type from v$database ;

NAME      CONTROL
--------- -------
V1123     BACKUP       -- controlfile_type is "Backup" Controlfile
SQL> select status,
           resetlogs_change#,
           resetlogs_time,
           checkpoint_change#,
           to_char(checkpoint_time, 'DD-MON-YYYY HH24:MI:SS') as checkpoint_time,
           count(*)
      from v$datafile_header
     group by status, resetlogs_change#, resetlogs_time, checkpoint_change#, checkpoint_time
     order by status, checkpoint_change#, checkpoint_time ;

STATUS  RESETLOGS_CHANGE# RESETLOGS_TIME       CHECKPOINT_CHANGE# CHECKPOINT_TIME        COUNT(*)
------- ----------------- -------------------- ------------------ -------------------- ----------
ONLINE             995548 15-FEB-2012:17:17:20            2446300 13-FEB-2013 15:09:44          1  -- Datafile(s) are at different checkpoint_change# (scn), so not consistent
ONLINE             995548 15-FEB-2012:17:17:20            2472049 13-FEB-2013 16:02:22          6

SQL> -- Check for datafile status, and fuzziness
SQL> select STATUS, ERROR, FUZZY,  count(*)     from v$datafile_header group by STATUS, ERROR, FUZZY   ;

STATUS  ERROR                                                             FUZ   COUNT(*)
------- ----------------------------------------------------------------- --- ----------
ONLINE                                                                    YES          7

SQL> -- Check for MIN, and MAX SCN in Datafiles
SQL> select min(CHECKPOINT_CHANGE#), max(CHECKPOINT_CHANGE#) from v$datafile_header ;

MIN(CHECKPOINT_CHANGE#) MAX(CHECKPOINT_CHANGE#)
----------------------- -----------------------
                2446300                 2472049

SQL>
SQL> select     substr(L.GROUP#,1,6)       GROUP#
           ,substr(L.THREAD#,1,7)         THREAD#
           ,substr(L.SEQUENCE#,1,10)      SEQUENCE#
           ,substr(L.MEMBERS,1,7)         MEMBERS
           ,substr(L.ARCHIVED,1,8)        ARCHIVED
           ,substr(L.STATUS,1,10)         STATUS
           ,substr(L.FIRST_CHANGE#,1,16)  FIRST_CHANGE#
           ,substr(LF.member,1,60)        REDO_LOGFILE
     from GV$LOG L, GV$LOGFILE LF
   where L.GROUP# = LF.GROUP# ;

GROUP# THREAD# SEQUENCE#  MEMBERS ARC STATUS     FIRST_CHANGE#    REDO_LOGFILE
------ ------- ---------- ------- --- ---------- ---------------- ------------------------------------------------------------
1      1       454        1       NO  CURRENT    2471963          /u01/app/oracle/oradata/V1123/redo01.log   <-- This is CURRENT log containing most recent redo, and is available
3      1       453        1       YES INACTIVE   2471714          /u01/app/oracle/oradata/V1123/redo03.log
2      1       452        1       YES INACTIVE   2451698          /u01/app/oracle/oradata/V1123/redo02.log

SQL>


-- Use MIN(CHECKPOINT_CHANGE#) 2446300 as found before, then use it with this query to find the
-- first SEQ# 'number' and archivelog file needed for recover to start with.
-- All SEQ# up to the online Current Redolog SEQ# must be available without any gap for successful recovery

-- MIN(CHECKPOINT_CHANGE#) 2446300

SQL> select thread#, sequence#, substr(name,1,80) from v$Archived_log
      where 2446300 between first_change# and next_change#;

   THREAD#  SEQUENCE# SUBSTR(NAME,1,80)
---------- ---------- --------------------------------------------------------------------------------
         1        449 /u01/app/oracle/oradata/V1123/arch1/arch_1_449_775329440.arc
         1        449 /u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_449_8kq7oc6y_.arc
         1        450 /u01/app/oracle/oradata/V1123/arch1/arch_1_450_775329440.arc
1            450 /u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_450_8kqbn929_.arc

SQL> select * from v$recover_file ;     -- Checking for Datafile(s) which needs recovery

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------------
         6 ONLINE  ONLINE                                                                       2446300 13-FEB-2013:15:09:44

SQL>
If you use a "BACKUP CONTROLFILE", or  previously used a CANCEL based recover command
then we need to recover, and finally 'manual' apply the online current redolog.
  
Example:

SQL> select name, controlfile_type from v$database ;

NAME      CONTROL
--------- -------
V1123     BACKUP

SQL>
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL ;

ORA-00279: change 2446300 generated at 02/13/2013 15:09:44 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_450_8kqbn929_.arc
ORA-00280: change 2446300 for thread 1 is in sequence #450

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 2451694 generated at 02/13/2013 16:00:25 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_451_8kqbnbmh_.arc
ORA-00280: change 2451694 for thread 1 is in sequence #451
ORA-00278: log file '/u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_450_8kqbn929_.arc' no longer needed for this recovery
...
 < all required logs applied >
...
ORA-00279: change 2471963 generated at 02/13/2013 16:02:19 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_454_%u_.arc
ORA-00280: change 2471963 for thread 1 is in sequence #454
ORA-00278: log file '/u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_453_8kqbqvrk_.arc' no longer needed for this recovery   <-- All Redo, up to and including SEQ# 453 is applied


ORA-00308: cannot open archived log '/u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_454_%u_.arc'    <<<-- "SEQ# 454" requested, which is in ONLINE REDOLOG as seen before
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/V1123/system01.dbf'

SQL> select * from v$recover_file ;

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------------
         6 ONLINE  ONLINE                                                                       2471963 13-FEB-2013:16:02:19

SQL>

SQL> alter database open resetlogs ;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/V1123/system01.dbf'

SQL>

The following query will show you the SCN to which we must at least recover to, to get all datafiles consistent.

SQL> select  min(FHSCN) "LOW FILEHDR SCN"
           , max(FHSCN) "MAX FILEHDR SCN"
           , max(FHAFS) "Min PITR ABSSCN"
       from X$KCVFH ;

LOW FILEHDR SCN  MAX FILEHDR SCN  Min PITR ABSSCN
---------------- ---------------- ----------------
2446300          2472049          0

-- Example output explained:
--
-- "LOW FILEHDR SCN"  - this is the SCN at which recovery process starts
-- "MAX FILEHDR SCN"  - this is the SCN we must recover to to get all datafiles consistent
--
--   IF    "Min PITR ABSSCN"  != 0 AND  >  "MAX FILEHDR SCN"
--   THEN  "Min PITR ABSSCN"  is the SCN we must recover to to get all datafiles consistent

ABSSCN = Absolute SCN

Comment:

In the above output/sample we see, redo (archivelogs)  was applied and datafile 6 was rolled forward but still needs more recovery and redo to be applied.
Database Recovery did not complete, because the online 'current' redolog is not applied automatically with a 'BACKUP' controlfile.
As we use a Backup Controlfile we must 'manually' apply the online 'current' redolog '/u01/app/oracle/oradata/V1123/redo01.log' having SEQ# 454  ( SCN 2472049)  !

Additional Note:

As this is recover with a Backup Controlfile, or controlfile create from  Tracefile (sql> alter database backup to trace;) ,
query of v$log/v$logfile will possibly not give the correct information, about which logfile contains which sequence number (seq#).

# Options to find the Online log to be used

   a: Check the Alert.log file for the last sequences used with 'Online Redolog files'

   b: If Alert.log is lost you may simply try all online redolog files, if the wrong logfile is chosen nothing will be applied,
      but you will see in in the output message which sequence is in that online redolog file.
      Then simply try the next online redolog file until you get 'media recovery complete' message.

   c: You may also dump the file log file headers for Online redolog file(s)  
      Example:
      --------
      sql> alter system dump logfile '/u01/app/oracle/oradata/V1123/redo01.log' scn min 1 scn max 1 ;
  
      -- This will write a tracefile with the header dump to your 'trace' (11g) [ or udump (<=10g) ] directory
      -- Check the tracefile for similar entry like...
      ~~~
      ..
       descrip:"Thread 0001, Seq# 0000000454 ...
       ..
       Low  scn: 0x.....
       Next scn: 0x.....
      ..
      ~~~

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL ;
.
ORA-00279: change 2471963 generated at 02/13/2013 16:02:19 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/V1123/archivelog/2013_02_13/o1_mf_1_454_%u_.arc
ORA-00280: change 2471963 for thread 1 is in sequence #454


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
'/u01/app/oracle/oradata/V1123/redo01.log'                  <-- specify the online redologfile having SEQ# 454 to be manually applied
Log applied.
Media recovery complete.
SQL> alter database open resetlogs ;

Database altered.

SQL>

 Note:

If after applying all archive logs and online redo logs the database does not open
please provide the following script output to Oracle support to assist with the recovery.
( Please upload spooled file: recovery_info.txt )

SQL> set pagesize 20000
     set linesize 180
     set pause off
     set serveroutput on
     set feedback on
     set echo on
     set numformat 999999999999999

     Spool recovery_info.txt
     select substr(name, 1, 50), status from v$datafile;
     select substr(name,1,40), recover, fuzzy, checkpoint_change# from v$datafile_header;
     select GROUP#,substr(member,1,60) from v$logfile;
     select * from v$recover_file;
     select distinct status from v$backup;
     select hxfil FILENUMBER, fhsta STATUS, fhscn SCN, FHAFS ABSSCN , fhrba_Seq SEQUENCE from x$kcvfh;
     select distinct (fuzzy) from v$datafile_header;
     spool off
SQL>     exit;

+++++++++++1528788.1+++++++++++

ORA-01139: RESETLOGS option only valid after an incomplete database recovery

Error :

sql statement: alter database open resetlogs
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 05/13/2004 09:18:54
RMAN-11003: failure during parse/execution of SQL statement: alter database open
resetlogs
ORA-01139: RESETLOGS option only valid after an incomplete database recovery

RMAN> exit



SOLUTION

Two solutions for this problem
=======================
1.Restore the old controlfile from rman , mount the database with old controlfile
and run following script.

RMAN> run {
restore database;
recover database noredo;
alter database open resetlogs;
}

2.Do the incomplete recovery using sqlplus

SQL>connect / as sysdba
SQL>recover database until cancel using backup controlfile;

Type 'cancel' here.

Then open the database with resetlogs

SQL>alter database open resetlogs;

JVM: Guidelines to setup the Java Virtual Machine in Apps Ebusiness Suite 11i and R12 (Doc ID 362851.1)

JDK Version:
It is recommended to use JDK 1.6, because of better performance and additional features. On Solaris and Linux, Sun's JVM will automatically detect whether the Hotspot Server Compiler or the Client Compiler should be used based on the number of CPUs and memory available on the machine.  For JDK 7.0, please reference Using JDK 7.0 Latest Update with Oracle E-Business Suite Release 12.0 and 12.1 (Document 1467892.1)
It is recommended also to use always the latest version for the specific JDK release.
For information about upgrading the JDK, refer to:
Note 401561.1 Using J2SE Version 6.0 with Oracle E-Business Suite 11i
Note 455492.1 Using Latest Update of Java 6.0 with Oracle E-Business Suite Release 12. 
Note 418664.1 Overview of Using Java with Oracle E-Business Suite Release 12
Number of JVMs:
1) For OACoreGroup:
Assumption: eBusiness Suite  is running in a 2-tier environment (middle tier in a separate machine)
- Start witn no more than 100 active users per JVM/OC4J instance.
- Start with 1 active JVM/OC4J instance per CPU core, though newer/faster chip families may support more than 1 JVM/OC4J instance per CPU core, depending upon threading, memory, I/O capabilities, etc.  Confirm with appropriate hardware vendor for best results. 
- Watch out for available memory (make sure that you have enough memory to run all the configured JVMs/OC4J instances without swapping)
Note: Each 'core' in a multi-core system is considered to be a separate CPU. For example, a dual quad-core chip would be the same as stating 2 x 4 x CPU  or 8 CPUs.
In regards to hyper-threading cores, “virtual CPUs,” etc., in theory the same thing applies, but in some cases it may not equate to the exact same as a separate core.  One could tune greater then a single CPU, but not treating the same as two CPUs, four CPUs, etc., depending upon the chip architecture.  Confirm with appropriate hardware vendor for best results. 



2) For  
FormsGroup:
For the forms servlet, the actual JVM/servlet usage is minimal, and a single JVM can normally handle up to 100-250 forms users.
Note: that depends on the type of forms. For more complex forms, those numbers are likely to be substantially lower
Notes: 
a) The number of jvms (oc4j in R12) is configured by the autoconfig variables s_oacore_nprocs, s_disco_nprocs, s_forms_servlet_nprocs (11i), s_forms_nprocs (R12) and s_xmlsvcs_nprocs. 
     (these variable should be updated in the $CONTEXT_FILE using the autoconfig editor from OAM)
b) In 11i, those changes are made in the $IAS_ORACLE_HOME/Apache/Jserv/etc/jserv.conf file, while in R12 in the $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml
Heap Configuration:
1) For OACore, start with the following configuration:
For R12.0 and 11i:
       -Xmx512M -Xms256M -XX:MaxPermSize=128M 
       -XX:NewRatio=2 -XX:+PrintGCTimeStamps
For R12.1 and higher:
      -Xmx1024M -Xms512M -XX:MaxPermSize=256M
      -XX:NewRatio=2 -XX:+PrintGCTimeStamps

     Also, ensure you add the following parameter to the DBC file:

     JDBC\:oracle.jdbc.maxCachedBufferSize=262144
    
Adjust the heap sizes accordingly to minimize garbage collection frequency and user pause times due to full garbage collections.
In JDK 1.6, the JVM detects that you have a server class machine (2 or more CPUs with 2GB or more memory), and will automatically enable Parallel Throughput Garbage Collector. The number of GC threads defaults to the number of CPUs on the machine. If you are running multiple JVMs on the same machine, or if your machine has more than 2 CPUs, to avoid the GC threads to be overly active you should reduce the number of GC threads by using:

      -XX:+UseParallelGC -XX:ParallelGCThreads=2

In most cases, using 2 GC threads should be sufficient. If you are using heap size of over 1GB, you can experiment with 4 GC threads and see if it gives you better performance. 
2) If using Forms in Servlet mode, the following configuration for FormsGroup should be enough for most of the cases:
      -Xmx256M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2
Notes: 
a) The heap is configured by the following autoconfig variables:
    11i: s_jvm_options, s_forms_jvm_options
    R12: s_oacore_jvm_start_option, s_forms_jvm_start_options, 
    (these variable should be updated in the $CONTEXT_FILE using the autoconfig editor from OAM)
b) In 11i, those changes are made in the $IAS_ORACLE_HOME/Apache/Jserv/etc/jserv.properties file, while in R12 in the $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml
Additional Recommendations:

1) R12 comes with Forms configured in servlet mode by default, because it is easier to setup if you need features like SSL. However, Forms in servlet mode may have some performance degradation, depending on the network capacity. For this reason, if performance is a concern, you may consider run Forms in socket mode, as it is more efficient than servlet mode.

2) Although the setup of those parameters can be temporarily done manually changing (jserv.conf and jserv.properties in 11i; opmn.xml in R12), the correct way to update those parameters is using the context editor, update the variables s_oacore_nprocs and s_forms_servlet_nprocs, and then run autoconfig.

3) Oracle Development recommends to be on the last ATG rollup patch, which is currently ATG-rollup7 (Note.783600.1).

4) Make sure to have the following setting in the jserv.properties (11i) or oc4j.properties file (R12) file:
wrapper.bin.parameters=-DLONG_RUNNING_JVM=true

If there is any entry in jserv.properties setting -DCACHEMODE, either comment it out or remove that entry:
#wrapper.bin.parameters=-DCACHEMODE=LOCAL

5) Check also recommended patches for Performance issues in:
Note 244040.1  - Oracle E-Business Suite Recommended Performance Patches

6) AIX accepts only the parameters "-Xmx" -Xms". The reminder of the parameters should not be used on those platforms. More 
More info about JDK parameters on AIX can be found at 
http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.60_26%2Fvm626%2FJ9%2FGC%2Fxmxoption.html

Saturday, June 7, 2014

Oracle data block corruption errors have been found in the alert log.

Error :
ORA-01578: ORACLE data block corrupted (file # 14, block # 406221)
ORA-01110: data file 14: '/u02/oracle/SVRQAT/db/apps_st/data/a_txn_data04.dbf'
ORA-26040: Data block was loaded using the NOLOGGING option
( OR)
REP-0069: Internal error
REP-57054: In-process job terminated:Terminated with error:
REP-300: ORACLE data block corrupted (file # 14, block # 406221)
ORA-01110: data file 14: '/u02/oracle/SVRQAT/db/apps_st/data/a_txn_data04.dbf'
ORA-26040: Data block was loaded using the NOLOGGING option

Solution  :

STEP 1: TO FIND THE CORRUPTION  SEGMENT NAME/TYPE

Connect / as sysdba

SQL> SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = 14 and 406221 between block_id AND block_id + blocks - 1;

SQL> set pagesize 2000
set linesize 250
SELECT e.owner, e.segment_type, e.segment_name, e.partition_name, c.file#
     , greatest(e.block_id, c.block#) corr_start_block#
     , least(e.block_id+e.blocks-1, c.block#+c.blocks-1) corr_end_block#
     , least(e.block_id+e.blocks-1, c.block#+c.blocks-1)
       - greatest(e.block_id, c.block#) + 1 blocks_corrupted
     , null description
  FROM dba_extents e, v$database_block_corruption c
 WHERE e.file_id = c.file#
   AND e.block_id <= c.block# + c.blocks - 1
   AND e.block_id + e.blocks - 1 >= c.block#
UNION
SELECT s.owner, s.segment_type, s.segment_name, s.partition_name, c.file#
     , header_block corr_start_block#
     , header_block corr_end_block#
     , 1 blocks_corrupted
     , 'Segment Header' description
  FROM dba_segments s, v$database_block_corruption c
 WHERE s.header_file = c.file#
   AND s.header_block between c.block# and c.block# + c.blocks - 1
UNION
SELECT null owner, null segment_type, null segment_name, null partition_name, c.file#
     , greatest(f.block_id, c.block#) corr_start_block#
     , least(f.block_id+f.blocks-1, c.block#+c.blocks-1) corr_end_block#
     , least(f.block_id+f.blocks-1, c.block#+c.blocks-1)
       - greatest(f.block_id, c.block#) + 1 blocks_corrupted
     , 'Free Block' description
  FROM dba_free_space f, v$database_block_corruption c
 WHERE f.file_id = c.file#
   AND f.block_id <= c.block# + c.blocks - 1
   AND f.block_id + f.blocks - 1 >= c.block#
order by file#, corr_start_block#;

SQL> select TABLESPACE_NAME,RELATIVE_FNO,BYTES from DBA_FREE_SPACE where FILE_ID=14 and 406221 between BLOCK_ID AND BLOCK_ID + BLOCKS -1;

SQL> SELECT owner, segment_name, segment_type FROM dba_extents WHERE file_id = 14 AND 406221 BETWEEN block_id AND block_id + blocks - 1;
OWNER          SEGMENT_NAME              SEGMENT_TYPE
------------    ------------------    --------------------
APPLSYS      WF_LOCAL_USER_ROLES     TABLE PARTITION

STEP2:

ALTER TABLE WF_LOCAL_USER_ROLES ENABLE ROW MOVEMENT;
ALTER TABLE APPLSYS.WF_LOCAL_USER_ROLES SHRINK SPACE COMPACT;
ALTER TABLE APPLSYS.WF_LOCAL_USER_ROLES SHRINK SPACE;
ALTER TABLE APPLSYS.WF_LOCAL_USER_ROLES  SHRINK SPACE CASCADE;

Error :
SQL> ALTER TABLE APPLSYS.WF_LOCAL_USER_ROLES SHRINK SPACE COMPACT;
ALTER TABLE APPLSYS.WF_LOCAL_USER_ROLES SHRINK SPACE COMPACT
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 14, block # 421578)
ORA-01110: data file 14: '/u02/oracle/SVRQAT/db/apps_st/data/a_txn_data04.dbf'
ORA-26040: Data block was loaded using the NOLOGGING option

STEP 3:EXPORT TABLE FROM SOURCE< PROD >

SQL> select directory_name, directory_path from dba_directories where directory_name=' WF_LOCAL_USER' ;

expdp \"/ as sysdba\"  directory=WF_LOCAL_USER  dumpfile=WF_LOCAL_USER_ROLES.dmp  TABLES=APPLSYS.WF_LOCAL_USER_ROLES  logfile=WF_LOCAL_USER.log

STEP 4: DROP TEH TABLE FROM TARGET

SQL> drop TABLE APPLSYS.WF_LOCAL_USER_ROLES;
SQL> exit

STEP 5: COPY THE EXPORT DUMPFILE FROM PROD TO TARGET

STEP6: IMPORT THE TABLE FORM TARGET
SQL> select directory_name, directory_path from dba_directories where directory_name=' WF_LOCAL_USER' ;

impdp  \"/ as sysdba\"  directory=WF_LOCAL_USER  dumpfile=WF_LOCAL_USER_ROLES.dmp  TABLES=APPLSYS.WF_LOCAL_USER_ROLES  logfile=WF_LOCAL_USER.log

STEP 6:

SQL> SELECT owner, segment_name, segment_type FROM dba_extents WHERE file_id = 14 AND 406221 BETWEEN block_id AND block_id + blocks - 1;

no rows selected
 ++++++++++++++Manjunatha++++++++++++++
Use RMAN to format corrupt data block which is not part of any object (Doc ID 1459778.1)
Doc ID 214369.1,472231.1,28814.1


Master Note (Doc ID 1578.1)