
When you create OAF extensions of existing Oracle EBS objects, you may place custom objects in a package that starts with your company's identifier: .oracle.apps....
For Example: If the name of the company is apps2fusion, then package name will be xxft.oracle.apps.po.server.schema
This creates the same directory structure as in package name, under /myclasses/ in your local machine. Normally you FTP these classes under $JAVA_TOP in Application Server, during deployment. This approach works perfectly. One drawback is you have custom objects hanging around in standard directory structure.
Lets say you want to segregate all the customizations to $XX_TOP so there is a better visibility of custom objects laying around, follow the below instructions to modify system files. These files can be modified directly also, but they may be overwritten by tech stack upgrades. This article is about the safe and generic way to modify these files, so they survive the upgrades.
Before I go any further, let’s learn about a pretty little tool called AutoConfig. More detailed explanation on AutoConfig can be found in Metalink notes 165195.1 and 218089.1
AutoConfig is a configuration tool that automates the configuration of Oracle Applications system. AutoConfig has to be enabled first to use it. Without AutoConfig, DBAs have to literally spend lot of hours if not days setting and verifying the instance specific variables after tech stack upgrades. AutoConfig is quick and easy way which saves lot of time and avoids any manual errors in configuring Oracle Applications.
AutoConfig uses two context files, one for Application Tier ($APPL_TOP/admin/_.xml) and one for Database Tier ($ORACLE_HOME/appsutil/_.xml). It can be run using $APPLCSF/scripts/_/adautocfg.sh
The files generated by AutoConfig contains the below header.
################################################################
#
# AutoConfig automatically generates this file. It will be read and
# overwritten. If you were instructed to edit this file, or if you are not
# able to use the settings created by AutoConfig, refer to Metalink
# document 165195.1 for assistance.
#
################################################################
Steps for modifying system settings:
Suppose custom directory for java objects is $XX_TOP/java, so custom java objects would be placed in $XX_TOP/java/xxft/oracle/apps/po/server/schema
- CLASSPATH environment variable:
CLASSPATH tells Java Virtual Machine (JVM) where to look for user-defined classes and packages in Java programs. By default $JAVA_TOP is mentioned in CLASSPATH variable. CLASSPATH variable has to be edited, to let the JVM know the java classes in custom directory.
You can check the directories in CLASSPATH variable, by typing ‘echo $CLASSPATH’ in unix prompt. Instead of editing the CLASSPATH directly, you can do as stated below:
When AutoConfig is run, it generates .env file with name APPS_.env in $APPL_TOP
For ex: APPSERPDEV_erpdev.env
This file has a reference to custom .env file by default. Below is the code snippet
#
# Source the custom file if it exists
customfile=/app/dev/d01/erpdevappl/customERPDEV_erpdev.env
if [ -f $customfile ]; then
. /app/dvl/d01/erpdvl01appl/customERPDEV_erpdev.env
fi
We can use the customfile to set the CLASSPATH, so create a custom .env file in $APPL_TOP with below code:
> vi customERPDEV_erpdev.env
export CLASSPATH=$CLASSPATH:/app/dev/d01/erpdevappl/xx/java
Verify the CLASSPATH by running the above echo command to check the custom directory.
- Properties files:
AutoConfig uses the template files in $FND_TOP/admin/template to create instance specific properties files. Oracle IAS related properties files are located in $IAS_ORACLE_HOME/Apache/Jserv/etc directory. Two files jserv.properties and zone.properties are important for OA Framework as they are used by JServ Servlet runner.
jserv.properties contains global settings for JServ servlet runner. You have to include $XX_TOP/java in wrapper.classpath setting.
For Ex:
# Custom classpath
# Customization - added custom classpath for java - 09/03/2008 - Start
wrapper.classpath=/app/dev/d01/devappl/xx/java
# Customization – End
zone.properties defines settings for where the servlets can found on disk. You have include $XXCHP_TOP/java in repositories setting.
For Ex:
# Customization - added custom classpath for java - 09/03/2008 - start
#repositories=%s_jserv_zone_classpath_begin%%s_tp%/Apache/Jserv/servlets,%s_javatop%/apps.zip,%s_javatop%%s_jserv_zone_classpath_end%
repositories=%s_jserv_zone_classpath_begin%%s_tp%/Apache/Jserv/servlets,%s_javatop%/apps.zip,%s_javatop%%s_jserv_zone_classpath_end%,/app/dev/d01/devappl/xx/java
# Customization – end
Since modifying these properties directly is not a good option, you can use good friend AutoConfig to generate these properties files. AutoConfig also uses template files for reading any custom settings for Oracle Applications configuration. AutoConfig template files are stored in $FND_TOP/admin/template. Any custom templates can be placed in ‘custom’ directory under $FND_TOP/admin/template.
For our properties file changes, Create jserv_ux_ias1022.properties and zone_ias1022.properties files in ‘custom’ directory with the above entries for wrapper.classpath and repositories settings. The run the AutoConfig to generate the properties in $IAS_ORACLE_HOME/Apache/Jserv/. So when AutoConfig is run, it first searches custom templates for settings and generates the properties files in $IAS_ORACLE_HOME/Apache/Jserv/
Note: The database server must remain available during the AutoConfig run. Only the application tier servers should be shut down.
I advice you to be very cautious in modifying the system files, better let the DBA do it rightly for you.
Comments
In formation on these line would be really helpful.
Thank s,
Rehan Yusuf
rehanyf
Pls search the apps2fusion blog for OA Framework, there are already tons of articles on how to setup OAF Development environment and deploying extensions to EBS.
Kishore
Thank you very much for the excellent article. I wonder how much the setup in R12.1.3 might differ from what you've described above
Any tips & tricks?
Thanks in advance
Kind regards
Mariana Angelova
RSS feed for comments to this post