When adcustomizer.sh may not work..

Preface

The AD product is getting smarter and so is AutoConfig.

Suppose you wanted to put customizations in your 11i Oracle Applications configuration files, but were apprehensive of using it because AutoConfig would replace the configuration file on being run: In such a scenario it is well known that # BEGIN customizations and # END Customizations block in the end of the configuration file is one solution.

This limited and inflexible method has now been superseded by a fully
supported mechanism to extend your AutoConfig-maintained environment
with a good deal of flexibility, preserving your extensions every time AutoConfig
is run.

Adcustomizer.sh

This interesting solution entails using the adcustomizer.sh utility as outlined in  Note 270519.1 . Essentially, the adcustomizer.sh utility lets you do the following:
  1. Detects all configuration files that have "Begin/End customizations" blocks.
  2. Copies the corresponding AutoConfig template files to custom template files. e.g. $FND_TOP/admin/template/jserv.properties_ux to $FND_TOP/admin/template/custom/jserv.properties_ux
  3. Appends the contents between "Begin/End customizations" blocks at the
    end of the custom template files.
  4. Removes the "Begin/End customizations" blocks from the actual configuration file.
This behaviour might appear as invasive or surprising to many at first. For example, if the entire configuration file (say init<SID>.ora) had everything put within # BEGIN and # END customization block, after the adcustomizer.sh run, everything will be stripped from the init<SID>.ora file. But at the same time, when

Application   <AD_TOP>/bin/adcustomizer.sh contextfile=<CONTEXT>
Database     <RDBMS ORACLE_HOME>/appsutil/bin/adcustomizer.sh contextfile=<CONTEXT>

Some challenges with adcustomizer.sh

Some of the biggest challenges with adcustomizer.sh are that it is a relatively new AD utility and hence may be prone to bugs and poor documentation. E.g. there are only 2 published notes in Metalink which talk about it right now.

One of the challenges which we faced were arcane java errors which are received for apparently no cause. With a little trial and error though, the cause and effect was determined.

usaxs51:sandbox> ./adcustomizer.sh contextfile=/ORACLE/sandbox/9.2.0/appsutil/sandbox_usaxs51.xml
#########################################################################
          Migrating the customizations to the templates                
#########################################################################
java.lang.NullPointerException
       at java.lang.String.indexOf(String.java(Compiled Code))
       at oracle.apps.ad.tools.configuration.Customizer.logErrorMessage(Customizer.java:624)
       at oracle.apps.ad.tools.configuration.Customizer.isTargetValid(Customizer.java:918)
       at oracle.apps.ad.tools.configuration.Customizer.migrateCust2Templates(Customizer.java:698)
       at oracle.apps.ad.tools.configuration.Customizer.runAllDrivers(Customizer.java:460)
       at oracle.apps.ad.tools.configuration.Customizer.main(Customizer.java:1048)


This error was flagged when the directories mentioned in $ORACLE_HOME/appsutil/template/addbtmpl.drv do not exist. E.g. If the directory $ORACLE_HOME/appsutil/install does not exist it throws the above error.

ad <s_db_oh>/appsutil/template adcrdb.cmd  INSTE8 <s_db_oh>/appsutil/install/<s_contextname>  adcrdb.sh

ad <s_db_oh>/appsutil/template adcrdbclone.sql  INSTE8 <s_db_oh>/appsutil/install/<s_contextname>  adcrdbcl
one.sql


The workaround is to just create the directory as expected with write permissions for the oracle unix user id and try again.

Interesting Trivia:

You cannot customize all AutoConfig template files.
The AutoConfig template file cannot be customized if
the "LOCK" keyword appears in the template file's entry
in the product driver file. AutoConfig ignores custom
template files that are marked with
"LOCK". For example, the following entry in <AD_TOP>/admin/driver/adtmpl.drv would prevent
customization of the file adconfig.txt:


ad admin/template adconfig.txt INSTE8 <s_at>/admin adconfig.txt 600 LOCK

Adchkcfg Utility

Its a good idea to run the adchkcfg utility as described in

Note 165195.1
. When this
utility runs, it instantiates any custom template files in place of the
corresponding AutoConfig template file.

The adchkcfg utility generates a report with information
about all files and profile options that will be changed during the next normal execution
of AutoConfig.  This utility can be used  to verify that your customizations would be applied as expected in your
next AutoConfig run.

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

bocadmin_ww

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today