orazone.com Blog


Autoconfig Internals

Posted in Uncategorized by Administrator on the September 6th, 2007

So what happens when you run adconfig.sh script? Remember it uses the XML file generated using adbldxml command. This XML file itself is build based upon the environment settings. You should ensure that the environment is set correctly by executing (CONTEXT_NAME).env script.

So one half of the equation comes from the XML file that we generated. The other half is the templates for each of the configuration file the AutoConfig process ultimately generates.

For each of the configuration file that gets generated as a result of running AutoConfig, Oracle uses a template file that come with the initial install process.

For example, if you review the adalnctl.sh file in the $AD_TOP/admin/template directory, you will see the template in action. Following is the extract from the template file adalnctl.sh located in $AD_TOP/admin/template directory

# FILENAME
# adalnctl.sh
# # DESCRIPTION
# Start / Stop Applications RPC Listener process for %s_dbSid%
# Make sure the logfile directory exists
#
if [ ! -d "%s_com%/admin/log/%s_dbSid%" ];
then mkdir -p %s_com%/admin/log/%s_dbSid%
fi;
# # Set up the logfile for this instance #
if [ -n "$SRVLOG" ];
then LOGFILE=$SRVLOG
else
LOGFILE=”%s_com%/admin/log/%s_dbSid%/adalnctl.txt”
fi;
touch $LOGFILE

Notice the s_dbSid variable being used in this script. The value for this variable will be read from the XML file generated when we ran the perl script adbldxml.pl.

Following the excerpt from the actual (CONTEXT_NAME).xml file located under $APPL_TOP/admin directory. Note that I have removed <> tags to enhance readability.

oa_system
oa_system_name oa_var=”s_systemname”SND1/oa_system_name global_db_name oa_var=”s_dbSid”snd1/global_db_name
global_db_name oa_var=”s_dbGlnam”>SND1/global_db_name
db_name_lower oa_var=”s_dbSidLower”snd1/db_name_lower
PRINTER oa_var=”s_printer”noprint/PRINTER
!oa_system_config

Now see the extract from actual adalnctl.sh in the $COMMON_TOP/admin/scripts/ directory.

As you can see, the actual file is created as copy from the template with values replaced from XML file.

# FILENAME
# adalnctl.sh
# # DESCRIPTION
# Start / Stop Applications RPC Listener process for snd1

# # Make sure the logfile directory exists #

if [ ! -d `dirname /u10/apps/snd1/comn/admin/log/snd1_ebdev03/adalnctl.txt` ];
then mkdir -p `dirname /u10/apps/snd1/comn/admin/log/snd1_ebdev03/adalnctl.txt`
fi;
# # Set up the logfile for this instance #

if [ -n "$SRVLOG" ]; then LOGFILE=$SRVLOG
else LOGFILE=”/u10/apps/snd1/comn/admin/log/snd1_ebdev03/adalnctl.txt” fi;
touch $LOGFILE

Conclusion

We have seen how AutoConfig creates the configuration files from template files.

Autoconfig Indepth

Posted in Uncategorized by Administrator on the September 6th, 2007
Background

Autoconfig is one of the central components of the 11i Architecture. AutoConfig is a process in which several key configuration files are managed centrally by Oracle. If you understand how Oracle uses Autoconfig process to maintain numerous configuration files such as init.ora, listener.ora, tnsnames.ora etc.., maintaining and administering 11i E-Business suite will be more fun and less stressful.
If your current system is not AutoConfig enabled, you can migrate it to start using AutoConfig. 

This post is introduction to AutoConfig. My other posts discuss internals of AutoConfig and Customizing AutoConfig.

Key Terms and their meaning

CONTEXT_NAME
Logical name for your Context. Default: _In earlier versions the default was set to

AutoConfig template file
An AutoConfig template file contains named tags, which are replaced with instance-specific information when AutoConfig runs. AutoConfig template files should not be edited.For example:$FND_TOP/admin/template/appsweb.cfg

Custom template file
To customize AutoConfig-managed configuration files, copy the AutoConfig template file to the custom template file and edit the custom template file. When AutoConfig detects a custom template file, AutoConfig instantiates this file in place of the AutoConfig template file.For example:$FND_TOP/admin/template/custom/appsweb.cfg
AutoConfig template directory
Directory where Oracle delivers AutoConfig template files. There is an AutoConfig template directory for every product.Location:/admin/template /appsutil/template
For example:$FND_TOP/admin/template $ORACLE_HOME/appsutil/template

Custom template directory
Directory where you keep customized AutoConfig template files.Location:/admin/template/custom /appsutil/template/custom
For example:$FND_TOP/admin/template/custom $ORACLE_HOME/appsutil/template/custom
Configuration file
The instantiated configuration file created when AutoConfig runs.For example:$COMMON_TOP/html/bin/appsweb_$CONTEXT_NAME.cfg
Autoconfig process reads an XML file ( CONTEXT_NAME.xml located under $APPL_TOP/admin in the application tier and $ORACLE_HOME/appsutil on the Database Tier) containing parameters and values, instantiates a template, replaces the place holders with actual values from the XML file to create an actual configuuration file.

Creating an AutoConfig enabled environment on the Application Tier involve as following steps

  • Setting the environment correctly by sourcing the relevant .env file
  • Generate an XML file containing parameters and values
  • Run the AutoConfig process to create the configuration files

Lets look at the detailed stepsAutoConfig on Application Tier

  • If you have an existing xml file in the directory /admin/(CONTEXT_NAME).xml, take the backup of the file. The perl script adbldxml.pl file during this process will overwrite this file.
  • Make sure you source the environment correctly by running .env file located under $APPL_TOP. If the environment is not sourced correctly, i.e COMMON_TOP, APPL_TOP,IAS_ORACLE_HOME, ORACLE_HOME are not established correctly, the xml file being generated in this step will contain incorrect values. That would generate incorrect configuration files in the AutoConfig run phase in step
    Generate the xml file using adbldxml.pl perl script
  • cd $AD_TOP/bin
  • perl adbldxml.pl tier=apps appsuser= appspasswd= (apps password )
  • Review the xml file generated in the above step to ensure all parameters and values are set correctly.
  • Run adautocfg.sh using the above generated XML file as an input to generate the required configuration files such as tnsnames.ora, Listener.ora, etc.
    $AD_TOP/bin/adconfig.sh contextfile= appspass= 

    AutoConfig on Database Tier

    Creating an AutoConfig enabled environment on the Database Tier is a similar process

  • Generate appsutil.zip file on the Application Tier
  • Ftp the appsutil.zip to the DB tier
  • Unzip and run the AutoConfig on the DB Tier

Now lets see those steps in detail
On the Application Tier (as the APPLMGR user):

  • Log in to the APPL_TOP environment (source the environment file)
  • cd $AD_TOP/bin
  • perl admkappsutil.pl
  • This will create appsutil.zip in $APPL_TOP/admin/out directory
  • Ftp the appsutil.zip created in the step 1 to the $RDBMS ORACLE_HOME on the Database Tier
  • Unzip appsutil.zip in the $ORACLE_HOME on the Database Tier.
  • cd $ORACLE_HOME on the DB Tier
  • unzip -o appsutil.zip
  • If there is (CONTEXT_NAME).xml file in $RDBMS ORACLE_HOME/appsutil, review the file and take a backup.
  • cd $ORACLE_HOME on DB Tier
  • . (CONTEXT_NAME) .env to source the environment
  • cd $ORACLE_HOME/appsutil/bin
  • perl adbldxml.pl tier=db appsuser= appspasswd=
    Review the xml file generated in the step above. Ensure that all parameters and values are set correctly.
  • Enable AutoConfig by running adconfig.sh using the above generated XML file as an input to generate the required configuration files such as tnsnames.ora, Listener.ora, etc..
    cd $ORACLE_HOME/appsutil/bin
  • adconfig.sh contextfile= ( XML file name with full path) appspass= (apps Password)

    Reviewing AutoConfig Log files

AutoConfig logfiles are stored under the following directories:Application Tier

(APPL_TOP)/admin/(CONTEXT_NAME)/log/(MMDDhhmm)

Database (
RDBMS ORACLE_HOME)/appsutil/log/(CONTEXT_NAME)/(MMDDhhmm)

There will be one log file per AutoConfig session, and it will contain exact information for every action that AutoConfig performed.
Rolling back an AutoConfig session

Each execution of AutoConfig creates a rollback script in case you need to revert to the previous configuration settings. The script and all backup configuration files from each AutoConfig session are stored in:

Application
(APPL_TOP)/admin/(CONTEXT_NAME)/out/(MMDDhhmm)
Database
(RDBMS ORACLE_HOME)/appsutil/out/(CONTEXT_NAME)/(MMDDhhmm)
where::(MMDDhhmm) = (month, day, hour, minute of AutoConfig run)

To roll back an AutoConfig session:
restore.sh
References
Refer to Metalink Notes 165195.1 and 270519.1 for requisite patch levels