Wednesday, 10 May 2017

AutoConfig (adconfig)

Background:

Oracle Applications has a complex architecture with many pieces of technology. For example Apache Web server, Apache Jserv, Forms Listener servlet (or forms server) etc. each of these has its own set of configuration files , which need to be set up correctly to function properly. Moreover Oracle Applications uses many profile options (e.g. Applications Web Agent, Applications Framework Agent etc) and other bits of information in the database to make the navigation seamless. These also need to be set correctly to function properly.Oracle Applications 11i consists of lots of configuration files and lots of profile options, which need to be all correctly set for the applications to work. Managing these profile options and configuration files manually may give errors.So Autoconfig is a tool provided by the Oracle E-Business Suite to maintain these files and profile options. We can say AutoConfig is a collection of templated configuration files that are used in combination with the appropriate database and applications context files to produce standardized environments.

What Is AutoConfig? 

Autoconfig is an 11i configuration tool (set of java classes run from perl/shell scripts) introduced in 11.5.4, which eliminates the need to manually maintain these configuration files and profile options.
Autoconfig maintains the environment specific values for the 11i environment in an xml file (stored in $APPL_TOP/admin). When autoconfig  run it overwrites the existing configuration files with new ones that it creates by merging the templates and the context file, it also updates the database by running the script it instantiates (merging a template with the values in the context file is termed as instantiating the template in Oracle parlance) from the script templates. That’s essentially what autoconfig does i.e. Instantiating configuration files from templates and updating database with values from the xml file. It does not move directories, check for availability of ports, update DNS entries and so on. These have to be done manually.


Please Note: Application context file called the .xml contains the configuration

information for the application tier & is located in $APPl_TOP/admin for each

node of application tier.

Database context file called the .xml contains the configuration information for

the database tier & is located in $ORACLE_HOME/appsutil/
  

How does it work?

Each configuration file has one corresponding template file (provided by autoconfig patches, stored in $PROD_TOP/admin/template directory). Profile options and other instance specific information in the database is maintained by many sql scripts, called from shell/perl scripts. These scripts also have corresponding template files (also provided by autoconfig patches, in $PROD_TOP/admin/templates).
In these template files all the environment specific values are replaced by placeholders (like %s_webhost%).

 Following entry in httpd.conf 


 Timeout 300  is replaced by following in its template
$FND_TOP/admin/template/httpd_ux_ias1022.conf
Timeout %s_ohstimeout%      
Environment specific values for this placeholder is stored in an environment specific xml file (called application context file) stored in $APPL_TOP/admin.
 For e.g. 
 For the above placeholder the value stored in the xml file is:  
 <ohstimeout oa_var="s_ohstimeout">300</ohstimeout> 
  
Each placeholder has a corresponding xml node in the context file. The placeholder name is the value for the “oa_var” attribute of the xml node, the placeholder name without the prefix “s_” (generally) is the node name for the xml node and the value is stored as a child text node. These xml nodes are termed as context variables by Oracle documentation and each node primarily is identified by its oa_var attribute value. So effectively we can say that in the above case we replace “300” by context variable “ohstimeout” whose oa_var value is “s_ohstimeout”.

Configuration files can be easily created from the template file by just replacing all the placeholders with the corresponding values from the context file. This process is termed as “instantiating the template” in Oracle documentation. 

Driver files (stored in $PROD_TOP/admin/driver) store information about what to do with each template (e.g. instantiate it and replace the existing configuration file with it, instantiate it and run it). These files are named as <PROD_TOP>tmpl.drv (e.g. adtmpl.drv, fndtmpl.drv etc.) They contain one line for each template they manage.

When autoconfig (adconfig.pl or adconfig.sh) runs it just processes the driver file for each product, line by line doing what the driver file instructs it to do. The order of execution of each line is not sequential as we shall see later. The diagram below depicts the autoconfig functionality.




Updating Context file

Suppose we want to update the active port from to 80 , for this we will edit the application context file as follows:

Step 1 :Start all services 
$ $COMMON_TOP/admin/scripts/adstrtal.sh APPS/ APPSPASSWORD Step 2 :log on to OAM & click site map. 
Step 3:Click AutoConfig from the list of System Configuration features in the Administration tab. 
Step 4 : Click the Edit Parameter button for the application tier context file to access the Context File Parameters page & then click the system tab. 
Step 5 : Click the Focus icon (blue triangle) for oa_web_server. This expands oa_web_server and shows the web server related parameters. 
Step 6:Update the Web Port (s_active_webport) parameter from <> to 80.  Step 7 : Save it & answer the tab.Then logout of OAM

Location of AutoConfig Script
The autoconfig script uses information from the context file to generate all applications configuration files & updates database profiles. It is located in

Application tier:
$COMMON_TOP/admin/scripts/CONTEXT_NAME/adautoconfig.sh

Database tier:
$ORACLE_HOME/appsutil/scripts/CONTEXT_NAME/adautoconfig.sh

Configure the oracle application system with the updated Applications context file.

Step 1 : Stop all services 
$ $COMMON_TOP/admin/scripts/adstpall.sh APPS/ APPSPASSWORD

Step 2:Run the autoconfig script, $adautocfg.sh & respond to the prompts. 

Step 3:Check log files for any errors.log file for autoconfig is adconfig.log & is located in /admin//log/MMDDhhmm/ 

Step 4: Restart all services : 
$ $COMMON_TOP/admin/scripts/adstrtal.sh APPS/APPSPASSWORD



Rolling back an autoconfig session

Each execution of AutoConfig creates a roll back script in case we want to revert back to the previous configuration settings. For this we perform the following steps:

Step 1 :Shut down all services: 
$ cd $COMMON_TOP/admin/scripts/ 

$ adstpall.sh APPS/ 

Step 2:Restore AutoConfig session. 
$ cd $APPL_TOP>/admin//out/MMDDhhmm 
$ restore.sh 

Step 3 : Restart all services: 
$ $COMMON_TOP/admin/scripts//adstrtal.sh APPS/
Restoring the previous configuration 

Now we will use OAM AutoConfig to restore the Applications Context.

Step 1 :Log on to the Oracle Application Manager (OAM) & click site map.You will be able to log on but some services will be down. 
Step 2: Click AutoConfig from the list of System Configuration features in the Administration tab. 
Step 3 : Click the Show History button for the application tier context file to access the Context File History page. 
Step 4 :Click the Show Differences from Current Configuration button to see the recently updated parameters & Select Restore Previous Value for the Web Port and Discoverer Port parameters. 
Step 5 :Save & respond the tabs. Log out of OAM. 
Step 6 :Shut down all services: 
$ cd $COMMON_TOP/admin/scripts/ 
$ adstpall.sh APPS/ 
Step 7 :Run the AutoConfig script, adautocfg.sh & Respond to the prompts. 
Step 8 : View the log file and check for any errors. 
Step 9 : Restart all services: 
$ $COMMON_TOP/admin/scripts//adstrtal.sh APPS/ 
Step 10 :Log on to the Oracle Application Manager (OAM)

If the status of some services appears to be down, click the Refresh icon to update the  status.

If we want some more information , Then we can check following Metalink Notes : 
218089.1 Autoconfig FAQ 
165195.1 Using AutoConfig to Manage System Configurations with Oracle
Applications 11i 
387859.1 Using AutoConfig to Manage System Configurations in Oracle
Applications Release 12 
270519.1 Customizing an AutoConfig Environment 
364927.1 How To Run Autoconfig On Database Tier (DB-Tier) 
341322.1 How to change the hostname of an Applications Tier using AutoConfig 
338003.1 How to change the hostname and/or port of the Database Tier using AutoConfig 
315674.1 How To Verify if Autoconfig is Enabled on 11.5.x 
391406.1 How to get a clean Autoconfig Environment




No comments:

Post a Comment