R12 10g iAS Techstack Directory Structure Changes
- Why the New File Structure?
- File System Changes
- JAVA_TOP Restructured
- Environment Variables
- Instance Top
- AD Scripts
- Config Files
- SSL Certificates
- Various Log Files
- XML Configuration Files
- opmn.xml
- server.xml
- orion-application.xml
- orion-web.xml
- appsweb.cfg
- ODL – Oracle Diagnostic Logging
- OPMN – Oracle Process Manager and Notification server
- OPMN – Log Files
- Apache Log Files (Text)
- Apache Log Files (ODL)
- OC4J Log files (Text)
- OC4J Log files (ODL)
- Apache Config Files
- Form Server Config Files
- MT Oracle Home Config Files
- How To Make Configuration Changes
Why the New File Structure?
The need to separate Oracle Apps into three parts
- Data
- Code
- Config
In many cases, configuration changes more frequently than code and data. So keeping it separately would result in easy maintenance
Also, in a shared file system, MUTEX files, related to Apache, cause access related problems as IAS_ORACLE_HOME is mounted on NFS.
With the new file structure, this issue is also resolved as all the configuration files can be stored on the local server instead of NFS.
File System Changes
A general overview of the Middle-tier and DB directory structure
|
FILESYSTEM CHANGES |
||
|
APPMGR |
||
|
OLD |
NEW |
|
| APPL_TOP | $HOME/<SID>appl | $HOME/apps/apps_st/appl |
| COMMON_TOP | $HOME/<SID>comn | $HOME/apps/apps_st/comn |
| ORACLE_HOME | $HOME/<SID>ora/8.0.6 | $HOME/apps/tech_st/10.1.2 |
| IAS_ORACLE_HOME | $HOME/<SID>ora/iAS | $HOME/apps/tech_st/10.1.3 |
|
ORACLE |
||
|
OLD |
NEW |
|
| ORACLE_HOME | $HOME/<SID>db/10.2.0 | $HOME/db/tech_st/10.2.0 |
| ORADATA | $HOME/<SID>data | $HOME/db/apps_st/data |
|
INSTANCE TOP |
||
|
OLD |
NEW |
|
| INST_TOP | N/A | $HOME/inst/apps/<context_name> |
Notice that in the new R12 directory structure, the above dir locations do not contain the $TWO_TASK.
JAVA_TOP Restructured
11i:
- $JAVA_TOP = $COMMON_TOP/java
- Class
- Archives
R12:
- $JAVA_TOP = $COMMON_TOP/java/classes
- Classes
- $AF_JLIB = $COMMON_TOP/java/lib
- Archives
Environment Variables
Changes in the env file naming convenstion and environment variables.
|
OLD |
|
| Env Source File | APPSORA.env |
| Context File (MT) | $APPL_TOP/admin/$TWO_TASK.xml |
| OA_HTML | $COMMON_TOP/html |
| JAVA_TOP, OA_JAVA | $COMMON_TOP/java |
| AF_JLIB | N/A |
| JAVA_BASE | N/A |
| FND_SECURE | $FND_TOP/secure/<SID>/ |
| ADMIN_SCRIPTS_HOME | $COMMON_TOP/admin/scripts/<SID>/ |
| LOG_HOME | $APPL_TOP/admin/<SID>/logs/ |
| FORMS_WEB_CONFIG_FILE | N/A |
|
NEW |
|
| Env Source File | APPS<SID>.env
This file executes the following env files $ORA_CONFIG_HOME/10.1.2/$TWO_TASK.env $APPL_CONFIG_HOME/$TWO_TASK.env |
| Context File (MT) | $APPL_CONFIG_HOME/admin/$TWO_TASK.xml |
| OA_HTML | $COMMON_TOP/webapps/oacore/html |
| JAVA_TOP, OA_JAVA | $COMMON_TOP/java/classes |
| AF_JLIB | $COMMON_TOP/java/lib |
| JAVA_BASE | $COMMON_TOP/java/ |
| FND_SECURE | $INST_TOP/apps/fnd/12.0.0/secure/ |
| ADMIN_SCRIPTS_HOME | $INST_TOP/admin/scripts/ |
| LOG_HOME | $INST_TOP/logs |
| FORMS_WEB_CONFIG_FILE | $INST_TOP/ora/10.1.2/forms/server/appsweb.cfg |
Instance Top
Instance top contains all the config files, log files, ssl certificates, document root etc. This is a new directory introduced in R12TS. Addition of this directory makes the middle-tier more organised, since data is kept seperate from config/log files. Another advantage is that, multiple instances can easily share the same middle tier / DB. To create a new instance that shares an existing middle-tier, just create a new instance_top with proper config files and nfs mount the middle tier in the server.

adpatch requires a few files created by adconfig to be present on the $APPL_TOP. Hence, the node where patches are applied to the env (INSTANCE-3), $APPL_CONFIG_HOME is set to $APPL_TOP. So, in this node, when adconfig is run, the config files for this env are generated on the central appltop (and not its instance top)
For all other shared instances (1, 2, 4), $APPL_CONFIG_HOME should be set to their respective instance tops so that the config files are generated/read from $INST_TOP/appl which enables you to easily have custom config files for each env.
|
INSTANCE TOP – STRUCTURE |
|
|
$INST_TOP: <APPS BASE>/inst/apps/<context_name>/ |
|
/admin |
|
/scripts |
ADMIN_SCRIPTS_HOME: Find all AD scripts here |
/appl |
APPL_CONFIG_HOME. For standalone envs, this is set to $APPL_TOP |
/fnd/12.0.0/secure |
FND_SECURE: dbc files here |
/admin |
All Env Config files here |
/certs |
SSL Certificates go here |
/logs |
LOG_HOME: Central log file location. All log files are placed here (except adconfig) |
/ora |
ORA_CONFIG_HOME |
/10.1.2 |
‘C’ Oracle home config, Contains tnsnames and forms listener servlet config files |
/10.1.3 |
Apache & OC4J config home, Apache, OC4J and opmn
This is the ‘Java’ oracle home configuration for OPMN, Apache and OC4J |
/pids |
Apache/Forms server PID files here |
/portal |
Apache’s DocumentRoot folder |
AD Scripts
All the AD Scripts for managing the middle-tier services are moved to instance top
|
AD SCRIPTS |
|
|
$ADMIN_SCRIPTS_HOME: $INST_TOP/admin/scripts |
|
| adautocfg.sh | run autoconfig |
| adstpall.sh | stop all services |
| adstrtal.sh | start all services |
| adapcctl.sh | start/stop/status Apache only |
| adformsctl.sh | start/stop/status OC4J Forms |
| adoacorectl.sh | start/stop/status OC4J oacore |
| adopmnctl.sh | start/stop/status opmn |
| adalnctl.sh | start/stop RPC listeners (FNDFS/FNDSM) |
| adcmctl.sh | start/stop Concurrent Manager |
| gsmstart.sh | start/stop FNDSM |
| jtffmctl.sh | start/stop Fulfillment Server |
| adpreclone.pl | Cloning preparation script |
| adoafmctl.sh | Xbuild6+ introduces adoafmctl.sh to start/stop/status OC4J oafm
(webservice, mapviewer) ascontrol to come later |
| adexecsql.pl | Execute sql scripts that update the profiles in an AutoConfig run |
| java.sh | Call java executable with additional args, (used by opmn, Conc. Mgr) |
Config Files
For standalone instances, $APPL_CONFIG_HOME is set to $APPL_TOP.
In that case, the config files will be in the usual location ($APPL_TOP/admin).
A small set of files created by autoconfig, that are used by adpatch, are still requried to be in APPL_TOP (Context variable s_appl_config_home).
Hence, in a multinode environment, $APPL_CONFIG_HOME should be set to $APPL_TOP in the node where adpatch will be run.
|
CONFIGURATION FILES |
|
|
$APPL_CONFIG_HOME/admin |
|
| topfile.txt | product top info |
| adjareas.txt | adjareas.txt |
| adjborg.txt | adjborg.txt |
| adjborg2.txt | adjborg2.txt |
| adovars.env | adovars.env |
| adconfig.txt | AD tools related parameters |
| context file | Context file <SID>.xml |
SSL Certificates
While configuring wallet, SSL certificates to be placed under $INST_TOP/certs
certs is the default directory for SSL or any other certificate files used by this instance.
To use a centrally staged certificate, change the appropriate context file and run autoconfig
|
SSL CERTIFICATES |
|
|
$INST_TOP/certs |
|
/Apache/ewallet.p12 |
|
/opmn/cwallet.sso |
|
/opmn/ewallet.p12 |
|
| certs is the default directory for SSL or any other certificate files
used by this instance. To use a centrally staged certificate, change the appropriate context file and run autoconfig |
|
Various Log Files
All Log file locations have changed. They are now placed under the Instance top
|
LOG FILES |
|
|
Location of various log files |
|
| AD Script log files (adapcctl.sh,…) | $INST_TOP/logs/appl/admin/log |
| CM Log Files ($APPLCSF/$APPLLOG) | $INST_TOP/logs/appl/conc/log |
| AD tools log files (adpatch, …) | $APPL_CONFIG_HOME/admin/$TWO_TASK/log |
| OPMN Log Files (Text & ODL) | $ORA_CONFIG_HOME/10.1.3/opmn/logs
(Techstack team is trying to get this moved to $INST_TOP/logs/10.1.3/opmn) |
| Apache Log Files (Text & ODL) | $INST_TOP/logs/10.1.3/Apache/ |
| OC4J Log Files (Text) | $INST_TOP/logs/10.1.3/j2ee/oacore/ |
| OC4J Log Files (ODL) | $INST_TOP/logs/10.1.3/j2ee/oacore/log/oacore_default_group_1/oc4j |
XML Configuration Files
- opmn.xml
- server.xml
- orion-application.xml
- orion-web.xml
opmn.xml
- Used by Oracle Process Manager and Notification Server (OPMN)
- Contains details of all the OC4J instances deployed on the server
- Location of the log files for OPMN
- Various ports used by OPMN
- File Location: $ORA_CONFIG_HOME/10.1.3/opmn/conf/
server.xml
- •Used by OC4J
- •Contains details of all the Applications deployed under that OC4J instance
- •Details like name of the application, where it is deployed, shared libraries if any….
- •Path for the j2ee-logging configuration file, RMI configuration file, JMS configuration file….
- •Location: $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/config/
orion-application.xml
- Used by application instance
- Contains details of all the web-modules deployed under that Application
- Also includes library path where it should look for the java code
- Location: $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/applications-deployment/oacore
orion-web.xml
- Used by web module
- Contains details of all servlet aliases and the mapping to servlet classes
- Location: $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/applications-deployment/oacore/html/
appsweb.cfg
- Forms Socket mode is not present in R12, only Servlet mode is available
- appsweb.cfg
- default.env (replacement of formservlet.ini in 11i)
- Location: $ORA_CONFIG_HOME/10.1.2/forms/server
- appsweb.cfg file’s location is also set in the env variable $FORMS_WEB_CONFIG_FILE
ODL – Oracle Diagnostic Logging
Oracle offers a new method for reporting diagnostic messages.
This new method, Oracle Diagnostic Logging (ODL), presents a common format for diagnostic messages and log files, and a mechanism for correlating all diagnostic messages from various components across Oracle Database.
Using ODL, each component logs messages to its own private local repository. A tool called LogLoader collects messages from each repository and loads them into a common repository where messages can be viewed as a single log stream, or analyzed in different ways.
For more info, check this link
OPMN – Oracle Process Manager and Notification server
OPMN or the Oracle Process Manager and Notification Server is used to manage the following Application server Components
- HTTP Server and OC4J
- Oracle Notification Server (ONS)
- Responsible for communications among the components.
- Process Manager (PM)
- Responsible for start, stop, restart and death detection
- Location:
- $ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl status (do not use this directly to start services)
OPMN – Log Files
Log files generated by OPMN are of two types:
- Plain text
- Oracle Diagnostic Logging (ODL)
Only generates plain text log files.
- opmn.log
- opmn.dbg
These log files are mentioned in opmn.xml. There are different levels and components for which to get detailed log.
Components:
- internal
- ons
- pm
Levels:
- none, fatal, error, warn, notify (Plain text)
- debug1, debug2, debug3, debug4 (Plain text)
Location:
- $ORA_CONFIG_HOME/10.1.3/opmn/logs
Apache Log Files (Text)
Apache Log files are defined in :
- $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.conf
Below are the directives used to define log level and locations
- LogLevel (emerg, alert, crit, error, warn, notice, info, debug)
- ErrorLog
- CustomLog
Location:
- $INST_TOP/logs/10.1.3/Apache/
Apache Log Files (ODL)
To enable ODL logging for Apache, need to add the following directives in
- $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.conf
- OraLogMode (oracle, odl, apache)
- OraLogSeverity (INTERNAL_ERROR, ERROR, WARNING, NOTIFICATION, TRACE)
- Specify message level: 1-32 (1 most severe, 32 least)
OC4J Log files (Text)
OC4J Log files are defined in
- $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployment/oacore/orion-application.xml
Location:
- $INST_TOP/logs/10.1.3/j2ee/oacore/
OC4J Log files (ODL)
Logging configuration:
- s_config_home/ora/10.1.3/j2ee/oacore/config/j2ee-logging.xml
Log Levels:
- ERROR:1
- WARNING:1
- NOTIFICATION:1
- NOTIFICATION:16
- TRACE:1
Location:
- $INST_TOP/logs/10.1.3/j2ee/oacore/log/oacore_default_group_1/oc4j
Apache Config Files
$ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/
httpd.conf
This is a server configuration file which typically contains directives that affect how the server runs, such as user and group IDs it should use, and location of other files.
apps.conf
Contains alias to html,media,temp etc (E-biz settings)
dms.conf
Oracle iAS DMS configuration file. This config file enables you to monitor performance of site components with Oracle’s Dynamic Monitoring Service (DMS).
mod_oc4j.conf
OC4J Apache module config file. Usually a stub.
oracle_apache.conf
Oracle Specific HTTP server configuration file. Used for including other config files
security.conf
Used for loading security modules
$ORA_CONFIG_HOME/10.1.3/config/
ias.properties
iAS related properties in this file, like Apache home locaiton, version, server etc.
$ORA_CONFIG_HOME/10.1.3/javacache/admin/
javacache.xml
Javacache xml config files for oacore apps
$ORA_CONFIG_HOME/10.1.3/j2ee/forms/config/
j2ee-logging.xml
Logging configuration file for OC4J
application.xml
Global Application configuration file for forms application
jms.xml
JMS Configuration file for forms application
oc4j-connectors.xml
Connector Configuration file for forms application
oc4j.properties
OC4J properties file. Various parameters like log filenames etc are specified here.
rmi.xml
RMI Configuration file for forms application. RMI stands for Remote Method Invocation. (The Java RMI system allows an object running in one Java Virtual Machine to invoke methods on an object running in another VM)
server.xml
Various directory locations are specified in this file
system-application.xml
This is the global application config file that is the parent for all other applications on the server. This file imports and loads various web modules
$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/oa_servlets/
$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/html/
orion-web.xml
Replacement for zone.properties. The same file is located in both the above oa_servlets and html directories
$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/
orion-application.xml
Used for applications level configuration. Used for specifying applications.log file location, OC4J connector context file etc.
$ORA_CONFIG_HOME/10.1.3/network/$TWO_TASK
tnsnames.ora
Apache’s tnsnames.ora file.
Form Server Config Files
$ORA_CONFIG_HOME/10.1.2/forms/server
appsweb.cfg ($FORMS_WEB_CONFIG_FILE)
appsweb.cfg moved to this location. Contains info on serverName, serverPort etc
default.env
Contains most of the env variables (classpath, product tops, oracle home etc)
MT Oracle Home Config Files
$ORA_CONFIG_HOME/10.1.2/network/admin
tnsnames.ora
Contains tns entries for fndsm, db etc
listener.ora
Middle-tier Oracle home listener.ora file
How To Make Configuration Changes
It is highly recommended that configuration changes should be done in the context file and then run adconfig. Manually changing configuration files will most likely get lost once you run AutoConfig. Also making changes to the wrong file may cause problems. The context file should be the place to make changes. These wont get lost once you run AutoConfig and the customization variables should apply the changes to the correct place.
The most commonly used customization variable in your environments would probably be s_oacore_prepend_classpath.
This variable can be used to preprend custom directories, jar or zip files to the oacore classpath.
To add a single directory is easy. Set s_oacore_prepend_classpath to /home/myname/myclassesdir. If you want multiple entries then is is a little more complicated. The format is:
<![CDATA[/home/myname/classpath1"/> <library path="/home/yourname/classpath2"/> <library path="/home/teamname/classpath3]] >
| CDATA means character data.
CDATA is the text that will NOT be parsed by a parser.Tags inside the text will NOT be treated as markup and entities will not be expanded. Hence the text inside the inner nested sqare brackets ([]) will not be treated as XML by the parser For more info on XML DTD, read this tutorial |
The orion_application.xml template file contains:
<library path="%s_oacore_prepend_classpath%" />
So the format for multiple entries has to take into consideration what already is in the template
e.g.: it already has the start and end tags. So the first entry in the variable starts with just the directory/file name and ends with a closing tag, and the last entry in the list omits the end tag. The others, if there are any, are complete <library path=”/my/dir/file”/> format.
(To get a clear picture, replace the red part in the above library tag with the red part in CDATA and you will see that it forms 3 properly structured tags)
Other customizations you may require are:
s_oacore_prepend_ld_lib_path
s_oacore_append_classpath
s_oacore_jvm_start_options
s_adovar_classpath
s_adovar_afclasspath
s_adovar_ldlib
For jsp development you may need to change setting for:
s_jsp_cache_dir
s_jsp_dbg_mode (default is false)
s_jsp_main_mode (default is justrun, you may need recompile)
The $AD_TOP/admin/template/adctxinf.tmp file contains descriptions of the context variables. This file is used to show the context variable descriptions when editing the context file via OAM.
July 10, 2009 at 10:12 pm
Great notes on R12. Keep up the good job. Indeed very comprehensive and to-the-point document. Let me know if my services are required. Myself Jaspreet, an APPS DBA LEAD with KPIT Cummins.
Thanks
Jaspreet
July 13, 2009 at 2:48 pm
Thanks Jaspreet !!!
September 18, 2009 at 4:08 pm
Sumit,
Indeed a great note
Arun Karandikar
Program Manager
KPIT Cummins
October 22, 2009 at 9:49 pm
Thanks for a such a great comparative article.
Thanks
Bala