Sunday, August 24, 2008

Developer 6i Patch Set 19 upgrade with EBS 11i

It has been more than two years since the last Developer 6i patchset 18 was certified with Oracle E-Business Suite Release 11i, and now, Developer 6i patchset 19 (6.0.8.28) is certified with Oracle Apps 11i.

Actually, since we migrated from Jinitiator to Java JRE 1.6, we've encountered some frustrating mouse focus issues, I really hope they were fixed with this patch and won't appear after upgrade.

Like with the last patch set, I'll bring you "step-by-step" upgrade instructions for linux deployments.
Other Operation Systems's need another patches - see Note 125767.1 - Upgrading Developer 6i with Oracle Applications 11i.

*** All patches must be installed on all Application tier nodes

  1. Stop all application processes by adstpall.sh
     
  2. Apply the latest certified Developer 6i patch set 19 (6194129) 
    - Source applications environment (e.g source .../testappl/APPSORA.env) 
    - Verify that $ORACLE_HOME is the 806_ORACLE_HOME
    - Execute with applmgr user
    $ unzip p6194129_60828_LINUX.zip
    $ cd developer6i_patch19
    $ ./patch_install.sh 2>&1 | tee patch_install_p19.log
           
    - Check patch_install_p19.log for any errors
    - Execute the following to relink Procedure Builder, Forms, Graphics and Reports
    $ cd $ORACLE_HOME/procbuilder60/lib; make -f ins_procbuilder.mk install
    $ cd $ORACLE_HOME/forms60/lib;       make -f ins_forms60w.mk install
    $ cd $ORACLE_HOME/graphics60/lib;    make -f ins_graphics60w.mk install
    $ cd $ORACLE_HOME/reports60/lib;     make -f ins_reports60w.mk install
             
  3. Apply patch 7156414 
    - Unzip patch file
    $ unzip p7156414_60828_GENERIC.zip
           
    - Backup old files
    $ cp -r $ORACLE_HOME/forms60/java/oracle/forms/handler/UICommon.class $ORACLE_HOME/forms60/java/oracle/forms/
    handler/UICommon.class.PRE_BUG7156414
    $ cp -r $ORACLE_HOME/forms60/java/oracle/forms/handler/ComponentItem.class $ORACLE_HOME/forms60/java/oracle/forms/
    handler/ComponentItem.class.PRE_BUG7156414
    $ cp -r $ORACLE_HOME/forms60/java/oracle/forms/handler/BlockScroller.class $ORACLE_HOME/forms60/java/oracle/forms/
    handler/BlockScroller.class.PRE_BUG7156414
    $ cp -r $ORACLE_HOME/forms60/java/oracle/forms/handler/FormCanvas.class $ORACLE_HOME/forms60/java/oracle/forms/
    handler/FormCanvas.class.PRE_BUG7156414
    $ cp -r $ORACLE_HOME/forms60/java/oracle/forms/handler/FormWindow.class $ORACLE_HOME/forms60/java/oracle/forms/
    handler/FormWindow.class.PRE_BUG7156414
    $ cp -r $ORACLE_HOME/forms60/java/oracle/forms/ui/VBean.class $ORACLE_HOME/forms60/java/oracle/forms/
    ui/VBean.class.PRE_BUG7156414
            
    - Copy patch files to appropriate directories
    $ cd [PATCH_TOP]/7156414/oracle/forms/handler
    $ cp UICommon.class      $ORACLE_HOME/forms60/java/oracle/forms/handler/UICommon.class
    $ cp ComponentItem.class $ORACLE_HOME/forms60/java/oracle/forms/handler/ComponentItem.class
    $ cp BlockScroller.class $ORACLE_HOME/forms60/java/oracle/forms/handler/BlockScroller.class
    $ cp FormCanvas.class    $ORACLE_HOME/forms60/java/oracle/forms/handler/FormCanvas.class
    $ cp FormWindow.class    $ORACLE_HOME/forms60/java/oracle/forms/handler/FormWindow.class

    $ cd [PATCH_TOP]/7156414/oracle/forms/ui
    $ cp VBean.class         $ORACLE_HOME/forms60/java/oracle/forms/ui/VBean.class


    - Regenerate Jar files
      - Execute adadmin
      - Select the "Generate Applications Files menu" option
      - Select "Generate product JAR files"
      - Do you wish to force regeneration of all jar files? => Yes
      - Spot check that the JAR files have been generated by verifying the timestamp    
    $ cd $OA_JAVA/oracle/apps/fnd/jar
    $ ll fndforms.jar fndewt.jar
             
  4. Apply patch 6125732
    - Unzip patch file + Apply patch
    $ unzip p6125732_60828_LINUX.zip
    $ cd 6125732
    $ sh patch.sh
           
  5. Apply patch 6857221
    - Unzip patch file + Apply patch
    $ unzip p6857221_60828_LINUX.zip
    $ cd 6857221
    $ sh patch.sh
           
    - Relink f60webmx for Oracle Applications
    $ adrelink.sh force=y "fnd f60webmx"
           
  6. Apply patch 3830807
    - Unzip patch file + Apply patch
    $ unzip p3830807_8063_LINUX.zip
    $ cd 3830807
    $ ./patch.sh
           
    - Relink all Applications executables:
      adadmin -> "Maintain Applications Files" -> "Relink Applications programs"
     
  7. Apply patch 4586086
    - Unzip patch file
    $ unzip p4586086_600_LINUX.zip
           
    - Backup old file
    $ cd $ORACLE_HOME/forms60/lib
    $ mv env_forms60.mk env_forms60.mk.PRE_BUG4586086
           
    - Copy patch file to the appropriate directory
    $ cd [PATCH_HOME]/bug4586086
    $ cp env_forms60.mk $ORACLE_HOME/forms60/lib

    - Generate shared object + Relink f60webmx for apps
    $ cd $ORACLE_HOME/forms60/lib
    $ make -f cus_forms60w.mk libso_install
    $ adrelink.sh force=y "fnd f60webmx"
            
  8. Relink applications executables
    - Run adadmin
    - Select (2) "Maintain Applications Files Menu"
    - Select (1) "Relink Applications programs"
    - List of product to link: fnd
    - Generate specific executables …: Yes
    - Relink with debug: No
    - Enter executables to relink: f60webmx ar60run ar60runb ar60rund
     
  9. Apply patch 7343387 (Apps Interoperability)
    - Unzip patch file
    $ unzip p7343387_11i_GENERIC.zip
           
    - Enable maintenance mode: adadmin -> (5) Change Maintenance Mode -> (1) Enable Maintenance Mode
    - apply patch with adpatch
    - Disable maintenance mode: adadmin -> (5) Change Maintenance Mode -> (2) Disable Maintenance Mode
     
  10. Verify your upgrade
    - Check the timestamp for the following files:
    $ cd $OA_JAVA/oracle/apps/fnd/jar
    $ ll fndforms.jar fndewt.jar
            
    If the timestamp is not current - run adadmin => Maintain Applications Files => Generate Product JAR Files. 
     
  11. Start all applications processes (adstrtall.sh)
    - You can also verify your upgrade by login to forms responsibility -> Help -> About Oracle Applications
      You should see: Oracle Forms version : 6.0.8.28.0
     

Related - Note 125767.1 - Upgrading Developer 6i with Oracle Applications 11i.

You are welcome to leave a comment

Thursday, August 7, 2008

How to Configure OEM 10g Database Control after Clone

After cloning an EBS environment I had tried to start the OEM 10g Database Control (DBConsole) and I got this message:

[oratest@testsrv1 ~]$ emctl start dbconsole
TZ set to Israel
OC4J Configuration issue.
/oracle/test/db/testdb/10.2/ oc4j/j2ee/OC4J_DBConsole_testsrv1.domain_TEST not found.

However, it was an acceptable message since DB Console wasn't configured to this instance yet.

Using emca I've tried to recreate the DB Control configuration files as follow:

[oratest@testsrv1 ~]$ emca -config dbcontrol db

...
INFO: Database Control started successfully
...
INFO: >>>>>>>>>>> The Database Control URL is http://testsrv1.domain:5500/em <<<<<<<<<<<
Enterprise Manager configuration completed successfully

Well, I thought it looks fine, but when I opened the DB Console I saw this message at the top of the page: 

error:
java.lang.Exception: Exception in sending Request :: null

After some research, logs digging and Metalink searches, I found that the Agent component should be relinked manually.
But before there are two issues in env_sysman.mk file that should be fixed before executing the relink command.

I will show my actions step by step:

  1. Stop DB Console:
    emctl stop dbconsole
     
  2. cd $ORACLE_HOME/sysman/lib
     
  3. Edit env_sysman.mk and look for "JRE_LIB_DIR"
    In my instance JRE_LIB_DIR was populated with the old environment name..
    I changed it from:
    JRE_LIB_DIR=/oracle/prod/db/proddb/10.2/jdk/jre/lib/i386
    To:
    JRE_LIB_DIR=/oracle/test/db/testdb/10.2/jdk/jre/lib/i386
     
  4. One more issue for env_sysman.mk, look for "$(LIBNMEM)  $(LIBNMER)"
    And change from:
    $(LIBNMEM)  $(LIBNMER) \
    To:
    $(LIBNMEM)  $(LIBNMER) $(LIBNMO) \
     
  5. Now relink the Agent component by issuing this command:
    make -f ins_sysman.mk agent
     
  6. Recreate the DB Control configuration files (Again, even if you did it before)
    emca -config dbcontrol db

Following this procedure will make the DBConsole configured and work for the new cloned instance.

Tuesday, July 29, 2008

How to enable FND_HELP search by creating an index on FND_LOBS efficiently

Have you ever tried to use the search option of Online Help in Oracle Applications?
Our users did... and they got "The page cannot be found" message...

I checked it on firefox, hope to get more accurate message, and I got this:
"Not Found. The requested URL /pls/DEV/fnd_help.search was not found on this server".
 

 

I checked fnd_help package and it's compiled and looks fine.

These errors appeared in error_log_pls:

[Mon Jul 28 10:34:54 2008] [warn] mod_plsql: Stale Connection due to Oracle error 20000
[Mon Jul 28 10:34:54 2008] [error] mod_plsql: /pls/DEV/fnd_help.search ORA-20000
ORA-20000: Oracle Text error:
DRG-10599: column is not indexed
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1209
ORA-06512: at "SYS.DBMS_SQL", line 328
ORA-06512: at "APPS.FND_HELP", line 1043
ORA-06512: at "APPS.FND_HELP", line 873
ORA-06512: at line 20

I found note 306239.1 - "Cannot Search Online Help After Fresh Install of 11.5.10" which suggest that Applications interMedia Text indexes are corrupt. In my instance it even wasn't exist...

I followed this note which instructs to:

  1. drop index FND_LOBS_CTX;
  2. Rebuild the index using aflobbld.sql

But aflobbld.sql had been running for more than 10 hours and the size of DR$FND_LOBS_CTX$I table has reached to 35 GB !
I had been wondering how it can be that fnd_lobs table is less than 1GB and the index on it is 35 GB and counting.... ?!

Note 396803.1 - "FND_LOBS_CTX is having huge size, how to reduce the sizeof the index?" suggests it's a bug, indexing all documents in FND_LOB table, also the binary files, while using wrong filter.

So how can we make aflobbld.sql to index only FND_HELP documents?

For each row in FND_LOBS table the file_format column is populated with one of the following values: IGNORE, BINARY, TEXT.
aflobbld.sql will index only rows that have this column set to BINARY or TEXT.
If we set all rows to IGNORE except FND_HELP rows, we could index them only.

Note 397757.1 - "How to Speed Up Index Creation on FND_LOBS by indexing Only FND_HELP Data" suggests the steps to do it.

These are the steps:

  1. Backup the fnd_lobs table before updating it, we will use it later:
     
    create table fnd_lobs_bk as select * from fnd_lobs;
     
    ** you can create a backup of this table and omit the file_date column to make this backup faster
     
  2. Drop index FND_LOBS_CTX if exists:
     
    drop index applsys.FND_LOBS_CTX;
     
  3. Update all rows to IGNORE except FND_HELP rows:
     
    update fnd_lobs
    set file_format = 'IGNORE'
    where nvl(program_name,'@') <> 'FND_HELP' ;
     
  4. Execute aflobbld.sql from OS terminal:
     
    sqlplus apps/sppas @$FND_TOP/sql/aflobbld.sql applsys apps;
     
  5. Since I'm not sure about the impact of leaving the FND_LOBS rows as IGNORE, I updated them back to the previous state:
     
    create unique index fnd_lobs_bk_u1 on fnd_lobs_bk (file_id);
     
    update (select fl.file_format ffo,flb.file_format ffb
            from fnd_lobs fl
                ,fnd_lobs_bk flb
            where fl.file_id = flb.file_id)
    set ffo=ffb;
     
    drop table fnd_lobs_bk;
     
  6. Check the search option.... it should work now.

You are welcome to leave a comment .

Aviad