You are on page 1of 64

Q. What is wdbsvr.app file used for? What's full path of this file? What's significance of this file ?

I'll again suggest you don't just remember answer & try to solve mystery behind this file. First where this file
exists ? You can find this file under $IAS_ORACLE_HOME/Apache/modplsql/cfg
Based on file location I am sure you can say this is related to Apache, & looking into modplsql/cfg , I am
sure you will say its related to mod_pls (mod plsql component of Apache/Oracle 11i WebServer)
configuration file. This file is used by mod_plsql component of Apache to connect to database. So when you
type url http://hostname:port/pls/SID , whenever Apache(11i Web Server) finds that request is for /pls/ then
Apache delegates this request to mod_pls component which in turn pick this file & check if there is any DAD
with name SID (in our example its VISION11I) &
Sample entry in wdbsvr.app
[DAD_VISION11I]
connect_string = VISION11I
password = apps
username = APPS
default_page = fnd_web.ping
On typing http://hostname:port/pls/VISION11I , it will connect to database using apps schema & will return
you page fnd_web.ping ( where fnd_web is package & ping is procedure or vise versa).
So story about this file doesn't stop here , this url which I mentioned about is quite useful in troubleshooting
so you can check if database connection is working fine or not. Another thing you want to check about this
file is since it stores APPS password you need to change here whenever you change apps password .

Q. Explain Architecture of Oracle Apps 11i.


Apps 11i is Mutli Tier architecture with Desktop(Client Tier), Middle Tier (Application Tier) and Database
Tier. For detailed explanation Click Here
The Desktop Tier
The client interface is provided through HTML for the newer HTML-based
applications, and via a Java applet in a Web browser for the traditional Forms-based
interface.

The Application Tier


The application tier has a dual role: hosting the various servers that process the business
logic, and managing communication between the desktop tier and the database
tier. This tier is sometimes referred to as the middle tier. Oracle9i Application Server
(9iAS) provides the technology used on the application tier. Six servers comprise the
application tier for Oracle Applications:
• Web server
• Forms server
• Reports server
• Discoverer server (optional)
• Concurrent Processing server
• Admin server

Web Server
The Oracle HTTP server (powered by Apache) acts as the Web server. It processes the
requests received over the network from the desktop clients, and includes additional
components such as:
• Web Listener
• Java Servlet Engine
• Java Server Pages (JSP)

The Web listener component of the Oracle HTTP server accepts incoming HTTP requests
(for particular URLs) from client browsers.
If possible, the Web server services the requests itself, for example by returning the
HTML to construct a simple Web page. If the page referenced by the URL needs
advanced processing, the listener passes the request on to the servlet engine, which
contacts the database server as needed.

Forms Server
The Forms server hosts the Oracle Applications forms and associated runtime engine that
support the professional interface. It is an Oracle Developer 6i component that mediates
the communication between the desktop client and the Oracle database server, displaying
client screens and initiating changes in the database according to user actions.
The Forms server caches data and provides it to the client as needed, for example when
scrolling through multiple order lines that exceed the limitations of a single screen.
The Forms server communicates with the desktop client using these protocols:
• Standard HTTP network connection
• Secure HTTPS network connection
• TCP/IP connection
Reports Server
The Reports server is automatically installed on the same node as the Concurrent
Processing server, and its reports are contained in the same directory as the concurrent
processing reports. However, reports generated by the Reports server are monitored and
administered separately from concurrent processing reports.
The Reports server dynamically selects the report language at runtime, so users see
their reports in their preferred language.

Discoverer Server
The Discoverer server comprises Oracle Discoverer 10g, a key component of the Oracle
10g Application Server. Discoverer is an ad hoc query, reporting, analysis, and publishing
tool that allows business users at all levels of an organization to gain immediate access
to information from data marts, data warehouses, and online transaction processing
(OLTP) systems.

Concurrent Processing Server


As described previously, user interactions with Oracle Applications data can be
conducted via HTML-based Applications or the more traditional Forms-based
Applications. However, there are also reporting programs and data updating programs
that need to run either periodically, or on an ad hoc basis. These programs, which
run in the background while users continue to work on other tasks, may require
a large number of data-intensive computations, and are run using the Concurrent
Processing architecture.

Admin Server
The Admin (Administration) server is located on the node where you maintain the data
model and data in your Oracle Applications database.
• Upgrading Oracle Applications
• Applying database patches to Oracle Applications

The Database Tier

The database tier contains the Oracle database server, which stores all the data
maintained by Oracle Applications. The database also stores the Oracle Applications
online help information.
More specifically, the database tier contains the Oracle data server files and Oracle
Applications database executables that physically store the tables, indexes, and other
database objects for your system.
In general, the database server does not communicate directly with the desktop
clients, but rather with the servers on the application tier, which mediate the
communications between the database server and the clients.

Q. What are various components in Application/Middle Tier?


In Application Tier various components are Web Server, Forms Server, Reports Server, Concurrent
Manager, Admin Server & Discoverer Server.
Q. What is APPL_TOP, COMN_TOP, ORA_TOP.....
XXX_TOP is top level directory in Oracle Application 11i for respective Component. To know more about
various TOP's Click Here

• The <dbname>DATA or DATA_TOP directory is located on the database server


machine, and contains the system tablespaces, redo log files, data tablespaces, index
tablespaces, and database files.

• The <dbname>DB directory is located on the database server machine, and contains
the ORACLE_HOME for the Oracle9i database.

• The <dbname>APPL or APPL_TOP directory contains the product directories and


files for Oracle Applications.
• The <dbname>ORA directory contains the ORACLE_HOMEs for the Applications
technology stack components.

• The <dbname>COMN or COMN_TOP (or COMMON_TOP) directory contains


directories and files used across products.
Q. What are issues you encountered during Oracle Applications 11i?
Answer to this question will depend on issues you encountered. Don't lie infront of Interviewer. If you have
not installed applications 11i accept it.

Q. What’s US directory in $AD_TOP or under various product TOP's .


US directory is default language directory in Oracle Applications. If you have multiple languages Installed in
your Applications then you will see other languages directories besides US, that directory will contain
reports, fmx and other code in that respective directory like FR for France, AR for arabic, simplifies
chinese or spanish.

Q. Whats main concurrent Manager types.

 ICM - Internal Concurrent Manager which manages concurrent Managers

The Internal Concurrent Manager (ICM) controls all other concurrent managers. It
administers the startup and shutdown of managers as defined by their work
shift, monitors for process failure, and cleans up if a failure occurs. The ICM does
not process concurrent requests itself (except for queue control requests, such as
ACTIVATE, DEACTIVATE, or ABORT).
 Standard Managers - Which Manage processesing of requests.

The Standard Manager as shipped with Oracle Applications will accept and run
any concurrent requests, as it has no specialization rules that would restrict its
activities.

 CRM - Conflict Resolution Managers , resolve conflicts in case of incompatibility.

The Conflict Resolution Manager (CRM) enforces rules designed to ensure that
incompatible concurrent requests do not run in the same conflict domain (an abstract
representation of the groupings used to partition data).

Q. Where is Concurrent Manager log file location.


By default standard location is $APPLCSF/$APPLLOG , in some cases it can go to $FND_TOP/log as well.

A concurrent request has a life cycle, which consists of three or possibly four phases:
Phase Activity
Pending The request is waiting to be run
Running The request is running
Completed The request has finished
Inactive T he request cannot be run

A concurrent program library contains concurrent programs that can be called by a


concurrent manager. An important example is the Oracle Application Object Library
program library (FNDLIBR), which contains Oracle Applications immediate concurrent
programs, and is assigned to the standard concurrent manager.

Table 1-2 Concurrent Processing Database Tables

Table Content
FND_CONCURRENT_REQUESTS Details of user requests, including status, start
date, and completion date
FND_CONCURRENT_PROGRAMS Details of concurrent programs, including
execution method, whether the program is
constrained, and whether it must be run alone.
FND_CONCURRENT_PROCESSES Cross-references between concurrent requests
and queues, and a history of concurrent
manager processes
FND_CONCURRENT_QUEUES Information about each of the concurrent
manager queues
Concurrent manager processes on a specific node can be seen by running the UNIX commands:
ps –ef | grep FNDLIBR
ps –ef | grep FNDSM

The ICM can be activated and deactivated from the operating system prompt, or
Oracle Applications Manager. It can also be deactivated (but not activated) from the
Administer Concurrent Managers form.
When the ICM is initiated on UNIX, the $FND_TOP/bin/startmgr program is
invoked. This calls $FND_TOP/bin/batchmgr, which then:

1. Starts a shell process


2. Starts the ICM process using the command FNDLIBR, with startup parameters
FND, CPMGR, and FNDCPMBR
3. Creates log files (std.mgr and wnnn.mgr) in $APPLCSF/$APPLLOG

Q. Where would i find .rf9 file, and what execatly it dose ?


These files are used during restart of patch in case of patch failure because of some reason.

Q. Where is appsweb.cfg or appsweb_$CONTEXT.cfg stored & why its used ?


This file is defined by environment variable FORMS60_WEB_CONFIG_FILE This is usually in directory
$OA_HTML/bin on forms tier. This file is used by any forms client session. When a user try to access
forms , f60webmx picks up this file and based on this configuration file creates a forms session to user/client.

Q. What is multi node system ?


Multi Node System in Oracle Applications 11i means you have Applications 11i Component on more than one
system. Typical example is Database, Concurrent Manager on one machine and forms, Web Server on
second machine is example of Two Node System.

Q. Can you clone from multi node system to single node system & vice versa ?
Yes , this is now supported via Rapid Clone, Check if your system has all prereq. patches for Rapid Clone
and you are on latest rapid clone patch.

Q. Does rapid clone takes care of Updating Global oraInventory or you have to register manually in
Global OraInventory after clone ?
Rapid Clone will automatically Update Global oraInventory during configuration phase. You don't have to
do any thing manually for Global oraInventory.

Q. What is .dbc file , where its stored , whats use of .dbc file ?
dbc as name says is database connect descriptor file which stores database connection information used by
application tier to connect to database. This file is in directory $FND_TOP/secure also called as
FND_SECURE

Q. What is GWYUID ?
GWYUID , stands for Gateway User ID and password. Usually like APPLSYSPUB/PUB
The public ORACLE username and password that grants access to the Oracle Applications
initial sign-on form. The default is APPLSYSPUB/PUB.
Q. Where GWYUID defined & what is its used in Oracle Applications ?
GWYUID is defined in dbc i.e. Database Connect Descriptor file . It is used to connect to database by thick
clients.

Q. Whats things you do to reduce patch timing ? You can take advantage of following -
 Merging patches via admrgpch
 Use various adpatch options like nocompiledb or nocompilejsp
 Use defaults file
 Staged APPL_TOP during upgrades
 Increase batch size (Might result into negative )

Q. How you put Applications


11i in Maintenance mode ?
Use adadmin to change Maintenance mode is Oracle Apps. With AD.I you need to enable maintenance mode
in order to apply apps patch via adpatch utility. If you don't want to put apps in maintenance mode you can
use adpatch options=hotpatch feature.

Q. Can you apply patch without putting Applications 11i in Maintenance mode ?
Yes, use options=hotpatch as mentioned above with adpatch.

Q. What are various options available with adpatch ?


Various options available with adpatch depending on your AD version are
autoconfig, check_exclusive, checkfile, compiledb, compilejsp, copyportion, databaseprtion,
generateportion, hotpatch, integrity, maintainmrc, parallel, prereq, validate

Q. adident utility is used for what ?


adident utility in oracle apps is used to find version of any file . AD Identification.
for ex. "adident Header <filename>

Q. What is adsplice utility ?


adsplice in oracle apps is utility to add a new product.

Q. How can you licence a product after installation ?


You can use ad utility adlicmgr to licence product in Oracle Apps.

Q. What is MRC ? What you do as Apps DBA for MRC ?


MRC also called as Multiple Reporting Currency in oracle Apps. Default you have currency in US Dollars
but if your organization operating books are in other currency then you as apps dba need to enable MRC in
Apps. How to enable MRC coming soon...

Q. Whats is JVM(Java Virtual Machine


) and which component uses JVM ?
JVM stands for Java Virtual Machine, JVM ?
JVM acronym for Java Virtual Machine which executes instructions generated by Java compiler. So user click
on any Self Service Request or any program which uses Java, then Apache forwards this request to
mod_jserv (mod_oc4j in 10g AS) & mod_jserv caters this request with help of JVM.

Q. What is access_log in apache , what entries are recored in access_log ? Where is default location of
this file ?
access_log in Oracle Application Server records all users accessing oracle applications 11i. This file location
is defined in httpd.conf with default location at $IAS_ORACLE_HOME/Apache/Apache/logs. Entries in
this file is defined by directive LogFormat in httpd.conf Typical entry in access_log is
198.0.0.1 - - [10/Sep/2006:18:37:17 +0100] "POST /OA_HTML/OA.jsp?.... HTTP/1.1" 200 28035
where 200 is HTTP status code & last digits 28035 is bytes dowloaded as this page(Size of page)

Q. Where is Jserv configuration files stored ?


Jserv configuration files are stored in $IAS_ORACLE_HOME/Apache/Jserv/etc

Q. What is session time out parameter & where all you define these values ?
To know about session time out parameter & location where its defined Click Here

Q. Where is applications start/stop scripts stored ? (adstrtal.sh and adstpall.sh)


applications start/stop scripts are in directory $COMMON_TOP/admin/scripts/$CONTEXT_NAME

Q. What are main configuration files in Web Server (Apache) ?


Main configuration files in Oracle Apps Web Server are
 httpd.conf, apps.conf, oracle_apache.conf, httpd_pls.conf
 jserv.conf, ssp_init.txt, jserv.properties, zone.properties
 plsql.conf, wdbsvr.app, plsql.conf

Q. How to check if Apps 11i System is Autoconfig enabled ?


Under $AD_TOP/bin check for file adcfginfo.sh & if this exists use
adcfginfo.sh contextfile=<CONTEXT> show=enabled
If this file is not there , look for any configuration file under APPL_TOP if system is Autoconfig enabled then
you will see entry like
# AutoConfig automatically generates this file. It will be read and .......

Q. How to check if Oracle Apps 11i System is Rapid Clone enabled ?


For system to be Rapid Clone enabled , it should be Autoconfig enabled (Check above How to confirm if
Apps 11i is Autoconfig enabled). You should have Rapid Clone Patches applied , Rapid Clone is part of
Rapid Install Product whose Family Pack Name is ADX. By default all Apps 11i Instances 11.5.9 and above
are Autoconfig & Rapid Clone enabled.

Q. Whats is difference between two env files in <CONTEXT>.env and APPS<CONTEXT>.env under
$APPL_TOP ?
APPS<CONTEXT>.env is main environment file which inturn calls other environment files like
<CONTEXT>.env under $APPL_TOP, <CONTEXT>.env under 806 ORACLE_HOME and
custom<CONTEXT>.env for any Customized environment files.
Q. What is access_log in Apache ?
access_log file keeps record of users accessing Oracle Apps 11i Webserver.
Typical entry in access_log is like
198.0.0.1 - - [25/Aug/2006 :03:15:13 +0100] "GET /OA_JAVA /oracle /forms /registry/Registry.dat
HTTP/1.1" 200 4117
Which means client with IP 198.0.0.1 requested for file mentioned above on 25 Aug 2006 at 03:15 AM , 200
is status code returned by Apache which means page returned successfully (Status Code 302 means page
redirected , 404 page not found, 500+ Internal Server error)
last digit 4117 in above entry of access_log means file size which is 4117 bytes. This file is quite useful in
monitoring your Web Server.
Please note above format might defer on your system as this is dependent log_format in Apache configuration
file ( httpd.conf)

Q. Whats is location of access_log file ?


access_log file by default is located in $IAS_ORACLE_HOME/ Apache/Apache/logs. Location of this file is
defined in httpd.conf by patameter CustomLog or TransferLog

Q. What is your Oracle Apps 11i Webserver Version and how to find it ?
From 11.5.8 to 11.5.10 Webserver version is iAS 1.0.2.2.2, In order to find version under
$IAS_ORACLE_HOME/Apache/Apache/bin execute ./httpd -version
./httpd -version
Server version: Oracle HTTP Server Powered by Apache/1.3.19
Server built: Dec 6 2005 14:59:13 (iAS 1.0.2.2.2 rollup 5)
P.S. You can configure 10g Application Server as well with Oracle Apps 11i.

Q. What is Location of Jserv configuration files ?


Jserv configuration files are located in $IAS_ORACLE_HOME /Apache/Jserv/etc .

Q. What is plssql/database cache ? In order to improve performance mod_pls (Apache component) caches
some database content to file. This database/plssql cache is usually of type session & plsql cache
 session cache is used to store session information.
 plsql cache is used to store plsql cache i.e. used by mod_pls

Q. Where is database/plssql cache stored ?


plssql & session cache are stored under $IAS_ORACLE_HOME/ Apache/modplsql/cache directory.

Q. How to determine Oracle Apps 11i Version ?


select RELEASE_NAME from fnd_product_groups;
You should see output like
RELEASE_NAME
-----------------------
11.5.9 or 11.5.10.2
Q. What is *.dbc file & whats is location of dbc file ?
Dbc as name says is database connect descriptor file which stores database connection information used by
application tier to connect to database.. This file by default located in $FND_TOP/secure directory also
called as $FND_SECURE directory.
Q. What is content of dbc file & why its important ?
DBC file is quite important as whenever Java or any other program like forms want to connect to database
it uses dbc file. Typical entry in dbc file is
GUEST_USER_PWD
APPS_JDBC_URL
DB_HOST
...., I will explain these parameters in other questions else in my BLOG

Q. There are lot of dbc file under $FND_SECURE, How its determined that which dbc file to use
from $FND_SECURE ?
This value is determined from profile option "Applications Database ID"

Q. What is RRA/FNDFS ?
Report Review Agent(RRA) also referred by executable FNDFS is default text viewer in Oracle Applications
11i for viewing output files & log files. As most of apps dba's are not clear about Report Server & RRA, I'll
discuss one on my blog and update link here .

Q. What is PCP is Oracle Applications 11i ?


PCP is acronym for Parallel Concurrurent processing. Usually you have one Concurrent Manager executing
your requests but if you can configure Concurrent Manager running on two machines (Yes you need to do
some additional steps in order to configure Parallel Concurrent Processing) . So for some of your requests
primary CM Node is on machine1 and secondary CM node on machine2 and for some requests primary CM
is on machine2 & secondary CM on machine1.

Q. Why I need two Concurrent Processing Nodes or in what scenarios PCP is Used ?
To check answer click Next.

Q. Why I need two Concurrent Processing Nodes or in what scenarios PCP is Used ?
Well If you are running GL Month end reports or taxation reports annually these reposrts might take couple
of days. Some of these requests are very resource intensive so you can have one node running long running ,
resource intensive requests while other processing your day to day short running requets.
another scenario is when your requests are very critical and you want high resilience for your Concurrent
Processing Node , you can configure PCP. So if node1 goes down you still have CM node available
processing your requests.

Q. Output & Logfiles for requests executed on source Instance not working on cloned Instance
Here is exact problem description - You cloned an Oracle Apps Instance from PRODBOX to another box
with Instance name say CLONEBOX on 1st of August. You can any CM logs/output files after 1st of August
only because these all are generated on CLONEBOX itself, But unable to view the logs/output files which
are prior to 1st August. What will you do & where to check?
Log, Output file path & location is stored in table FND_CONCURRENT_REQUESTS. Check
select logfile_name, logfile_node_name, outfile_name, outfile_node_name from fnd_concurrent_requests
where request_id=&requestid;
where requestid is id of request for which you are not able to see log or out files. You should see output like
/u01/PRODBOX/log/l123456.req, host1,/u01/PRODBOX/out/o123456.out, host1
Update it according to your cloned Instance Variables.

Q. How to confirm if Report Server is Up & Running ?


Report Server is started by executable rwmts60 on concurrent manager Node & this file is under
$ORACLE_HOME/bin .execute command on your server like
ps -ef | grep rwmts60
You should get output like
applmgr ....... rwmts60 name=REP60_VISION
where VISION is your Instance name.
Else you can submit a request like "Active Users" with display set to PDF, check output & log file to see if
report server can display PDF files.

Q. What is difference between ICM, Standard Managers & CRM in Concurrent Manager ?
 ICM stand for Internal Concurrent Manager, which controls other managers. If it finds other managers
down , it checks & try to restart them. You can say it as administrator to other concurrent managers. It has
other tasks as well.
 Standard Manager These are normal managers which control/action on the requests & does batch or
single request processing.
 CRM acronym for Conflict Resolution Manager is used to resolve conflicts between managers &
request. If a request is submitted whose execution is clashing or it is defined not to run while a particular type
of request is running then such requests are actioned/assigned to CRM for Incompatibilities & Conflict
resolution.

Q. What is use of Apps listener ?


Apps Listener usually running on All Oracle Applications 11i Nodes with listener alias as APPS_$SID is
mainly used for listening requests for services like FNDFS & FNDSM.

Q. How to start Apps listener ?


In Oracle 11i, you have script adalnctl.sh which will start your apps listener. You can also start it by
command
lsnrctl start APPS_$SID (Replace sid by your Instance SID Name)
Q. How to confirm if Apps Listener is Up & Running ?
execute below command
lsnrctl status APPS_$SID (replcae SID with your Instance Name)
so If your SID is VISION then use lsnrctl status APPS_VISION out put should be like
Services Summary...
FNDFS has 1 service handler(s)
FNDSM has 1 service handler(s)
The command completed successfully

Q. What is Web Listener ?


Web Listener is Web Server listener which is listening for web Services(HTTP) request. This listener is started
by adapcctl.sh & defined by directive (Listen, Port) in httpd.conf for Web Server. When you initially type
request like http://becomeappsdba.blogspot.com:80 to access application here port number 80 is Web
Listener port.

Q. How will you find Invalid Objects in database ?


using query
SQLPLUS> select count(*) from dba_objects where status like 'INVALID';

Q. How to compile Invalid Objects in database ?


You can use adadmin utility to compile or you can use utlrp.sql script shipped with Oracle Database to
compile Invalid Database Objects.

Q. How to compile JSP in Oracle Apps ?


You can use ojspCompile.pl perl script shipped with Oracle apps to compile JSP files. This script is under
$JTF_TOP/admin/scripts. Sample compilation method is
perl ojspCompile.pl --compile --quiet

Q. What is difference between adpatch & opatch?

 adpatch is utility to apply oracle apps Patches whereas


 opatch is utility to apply database patches

Q. Can you use both adpatch & opatch in Apps?


Yes you have to use both in apps , for apps patches you will use adpatch utility and for applying database
patch in apps you will opatch utility.

Q. Where will you find forms configuration details apart from xml file ?
Forms configuration at time of startup is in script adfrmctl.sh and appsweb_$CONTEXT_NAME.cfg
(defined by environment variable FORMS60_WEB_CONFIG_FILE) for forms client connection used each
time a user initiates forms connection.

Q. What is forms server executable Name ?


f60srvm

Q. What are different modes of forms in which you can start Forms Server and which one is default ?
You can start forms server in SOCKET or SERVLET by defualt Forms are configured to start in socket
mode.

Q. How you will start Discoverer in Oracle Apps 11i ?

In order to start dicoverer you can use script addisctl.sh under $OAD_TOP/admin/scripts/
$CONTEXT_NAME or startall.sh under $ORACLE_HOME/discwb4/util (under Middle/Application Tier)

Q. How many ORACLE HOME are Oracle Apps and whats significance of each ?
There are three $ORACLE_HOME in Oracle Apps, Two for Application Tier (Middle Tier) and One in
Database Tier.
 ORACLE_HOME 1 : On Application Tier used to store 8.0.6 techstack software
. This is used by forms, reports & discoverer. ORACLE_HOME should point to this ORACLE_HOME
which applying Apps Patch.
 ORACLE_HOME 2: On Application Tier used by iAS (Web Server) techstack software. This is used by
Web Listener & contains Apache.
 ORACLE_HOME 3: On Database Tier used by Database Software usually 8i,9i or 10g database.

Q. Where is HTML Cache stored in Oracle Apps Server ?


Oracle HTML Cache is available at $COMMON_TOP/_pages for some previous versions you might find it
in $OA_HTML/_pages

Q. Where is plssql cache stored in Oracle Apps ?


Usually two type of cache session & plssql stored under $IAS_ORACLE_HOME/Apache/modplsql/cache

Q. What happens if you don't give cache size while defining Concurrent Manager ?

Lets first understand what is cache size in Concurrent Manager. When Manager picks request from FND
CONCURRENT REQUESTS Queues, it will pick up number of requests defined by cache size in one shot &
will work on them before going to sleep. So in my views if you don't define cache size while defining CM
then it will take default value 1, i.e. picking up one request per cycle.
Thanks to vish for pointing out that answer to above Q's copied from pervious Q's. If you find any disperancy do mail me.

Q. What are few profile options which you update after cloning ?

Rapid clone updates profile options specific to site level . If you have any profile option set at other levels
like server, responsibility, user....level then reset them.

Q. How to retrieve SYSADMIN password ?

If forgot password link is enabled and sysadmin account is configured with mail id user forget password link
else you can reset sysadmin password via FNDCPASS.

Q. If you have done two node Installation, First machine : Database and concurrent processing server.
2nd machine: form,web Which machine have admin server/node?

Admin Server will be on First machine with concurrent processing server. More on Admin Server coming
soon..
Q. Whats is TWO_TASK in Oracle Database ?

TWO_TASK mocks your tns alias which you are going to use to connect to database. Lets assume you have
database client with tns alias defined as PROD to connect to Database PROD on machine
teachmeoracle.com listening on port 1521. Then usual way to connect is sqlplus username/passwd@PROD
; now if you don't want to use @PROD then you set TWO_TASK=PROD and then can simply use sqlplus
username/passwd then sql will check that it has to connect to tnsalias define by value PROD i.e.
TWO_TASK
Q. What is GWYUID ?
GWYUID , stands for Gateway User ID and password. Usually like APPLSYSPUB/PUB

Q. Where GWYUID defined & what is its used in Oracle Applications ?


GWYUID is defined in dbc i.e. Database Connect Descriptor file . It is used to connect to database by thick
clients.

Q. What is difference between GUEST_USER_PWD (GUEST/ORACLE) & GWYUID ?


GUEST_USER_PWD(Guest/Oracle) is used by JDBC Thin Client where as GWYUID is used by Thick
Clients like via Forms Connections.

Q. How to check number of forms users at any time ?


Forms Connections initiate f60webmx connections so you can use
ps -ef | grep f60webmx | wc -l

Q. What is 0 & Y in FNDCPASS, FNDLOAD or WFLOAD ?


0 & Y are flags for FND Executable like FNDCPASS & FNDLOAD where
0 is request id (request ID 0 is assigned to request ID's which are not submitted via Submit Concurrent
Request Form.
'Y' indicates the method of invocation. i.e. it is directly invoked from the command-line not from the Submit
Request Form.
* Corrected by anonymous User (You will see lot of other info from him soon)

Q. In a Multi Node Installation, How will you find which node is running what SErvices ?
You can query for table FND_NODES and check for column , SUPPORT_CP ( for Concurrent Manager)
SUPPORT_FORMS ( for forms server) , SUPPPORT_WEB (Web Server), SUPPORT_ADMIN( Admin
Server), and SUPPORT_DB for database tier.
You can also check same from CONTEXT File (xml file under APPL_TOP/admin)

Q. If your system has more than one Jinitiator, how will the system know, which one to pick. ?
When client makes a forms connection in Oracle Applications, forms client session uses configuration file
defined by environment variable FORMS60_WEB_CONFIG_FILE also called as appsweb config file. These
days this file is of format appsweb_$CONTEXT.cfg The initiator version number defined by parameter
jinit_ver_name in this file will be used .

Q. While applying Apps patch using adpatch, if you want to hide the apps password, how will that be
possible ?
Use adpatch flags=hidepw while applying patches in apps to hide apps or system password being displayed
on Users Screen.
Q. What is importance of IMAP Server in Java Notification Mailer ?
IMAP stands for Internet Message Access Protocol and Java Notification mailer require IMAP server for
Inbound Processing of Notification Mails.

Q. What is difference between Socket & Servlet Mode in Apps Forms ?


When forms run SOCKET Mode these are dedicated connection between Client Machine & Form Server (Started
by adfrmctl.sh). When Forms run in servlet mode the forms requests are fulfilled by Jserv in Apache . There
will be additional JVM for Forms Request in that case and you won't start form via adfrmctl.sh.

Q. How to find OUI version ?


OUI stands for Oracle Universal Installer. In order to find how to check OUI version Click Here on my
"How to find Version in Oracle" Page.

Q. What is make program in Unix ?


make is utility in Unix/Linux to maintain , update & generate an file mainly executable.

Q. If by mistake you/someone deleted FNDLIBR can this executable be restored if Yes,


How & if no, what will you do ?
Yes, you can restore FNDLIBR executables
run adadmin on concurrent manager node
select option 2. Maintain Applications Files menu
then select 1. Relink Applications programs
when prompts for
Enter list of products to link ('all' for all products) [all]
select FND
when prompt for
Generate specific executables for each selected product [No] ? YES
select YES
& from list of executables select FNDLIBR
This will create new FNDLIBR executables.

Q. What is .pls files which you see with apps ?


.pls file stands for plsql files. In apps patch these files contain code to create package spec or package body
or both.

Q. What are .ldt & .lct files which you see in apps patch or with FNDLOAD ?
.ldt & .lct stands for Loader datafile & Loader configuration files, used frequently in migrating customization,
profile options, configuration data, etc.. across Instances.

Q. What are .odf file in apps patch ?


odf stands for Object Description Files used to create tables & other database objects.

Q. What to find Form Server log files in forms ?


Form Server Start up log file default location is $OAD_TOP/admin/log/$CONTEXT_NAME/f60svrm.txt
Forms Run Time Diagnostics default location is $ORACLE_HOME/forms60/log/$CONTEXT_NAME

Q. How to convert pll to pld file or pld file to pll ?


Pll->Pld f60gen module=MSCOSCW3.pll module_type=library userid=apps/<passwd> module_access=file
output_file=MSCOSCW1.pld script=yes
Pld -> pll f60gen module=MSCOSCW3.pld userid=apps/<passwd> module_type=library
module_access=file output_file=MSCOSCW1.pll parse=y batch=yes compile_all=special

Q. Is APPS_MRC Schema exists for MRC in 11.5.10 and higher ?


No , apps_mrc schema is dropped with 11.5.10 Upgrade & 11.5.10 new Install. This is replaced by more
Integrated Architecture.

Q. If APPS_MRC schema is not used in 11.5.10 and higher then How MRC is working ?
For products like Payable, Recievables which uses MRC and if MRC is enabled then each transaction table
in base schema related to currency now has an assoicated MRC Subtables.

Q. When you apply C driver patch does it require database to be Up & Why ?
Yes , database & db listener should be Up when you apply any driver patch in apps. even if driver is not
updating any database object connection is required to validate apps & other schema and to upload patch
history information in database tables.

Q. Can C driver in apps patch create Invalid Object in database ?


No , C driver only copies files in File System. Database Object might be invalidated during D driver when
these objects are created/dropped/modified.

Q. What is dev60cgi & f60cgi ?


cgi stands for Common Gateway Interface and these are Script Alias in Oracle Apps used to access forms
server . Usually Form Server access directly via http://hostname:port/dev60cgi/f60cgi

Q. Why does a worker fails in Oracle Apps Patch and few scenarios in which it failed for you ?
This question sounds stupid but this is asked quite often in Apps DBA Interview. Apps Patch worker can fail
in case it doesn't find expected data, object, files or any thing which driver is trying to update/edit/modify.
Possible symptoms may be underlying tables/objects are invalid, a prereq patch is missing , login information
is incorrect, inconsistency in seeded data...

Q. What is difference between mod_osso & mod_ose in Oracle HTTP Server ?


mod_osso is Oracle Single Sign-On Module where as mod_ose is module for Oracle Servlet Engine.
mod_osso is module in Oracle's HTTP Server serves as Conduit between Oracle Apache Server & Singl Sign-
On Server where as mod_ose is also another module in Oracle's HTTP Server serves as conduit between
Oracle Apache & Oracle Servlet Engine.

Q. What is difference between COMPILE_ALL=SPECIAL and COMPILE=ALL while compiling


Forms ?
Both the options will compile all the PL/SQL in the resultant .FMX, .PLX, or .MMX file but
COMPILE_ALL=YES also changes the cached version in the source .FMB, .PLL, or .MMB file. This
confuses version control and build tools (CVS, Subversion, make, scons); they believe you've made
significant changes to the source. COMPILE_ALL=SPECIAL does not do this.

Q. What is ps -ef or ps command in Unix ? for work ex < 1 yr


ps is unix/linux utility or executable to find status of process. Used mainly to find if services/process is
running or not.

Q. What is GSM in Oracle application E-Business Suite ?


GSM stands for Generic Service Management Framework. Oracle E-Business Suite consist of various
compoennts like Forms, Reports, Web Server, Workflow, Concurrent Manager ..
Earlier each service used to start at their own but managing these services (given that) they can be on various
machines distributed across network. So Generic Service Management is extension of Concurrent Processing
which manages all your services , provide fault tolerance (If some service is down ICM through FNDSM &
other processes will try to start it even on remote server) With GSM all services are centrally managed via this
Framework.

Q. What is FNDSM ?
FNDSM is executable & core component in GSM ( Generic Service Management Framework discussed
above). You start FNDSM services via APPS listener on all Nodes in Application Tier in E-Business Suite.

Q. What is iAS Patch ?


iAS Patch are patches released to fix bugs associated with IAS_ORACLE_HOME (Web Server Component)
Usually these are shiiped as Shell scripts & you apply iAS patches by executing Shell script. Note that by
default ORACLE_HOME is pointing to 8.0.6 ORACLE_HOME and if you are applying iAS patch export
ORACLE_HOME to iAS . You can do same by executing environment file under $IAS_ORACLE_HOME

Q. If we run autoconfig which files will get effected ?


In order to check list of files changes during Autoconfig , you can run adchkcfg utility which will generate
HTML report. This report will list all files & profile options going to change when you run AutoConfig.

Q. What is difference between .xml file & AutoConfig ?


Autoconfig is Utility to configure your Oracle Application environment. .xml file is repository of all
configuration from which AutoConfig picks configuration and polulates related files.

Q. What is .lgi files ?


lgi files are created with patching along with .log files . .lgi files are informative log files containing
information related to patch. You can check .lgi files to see what activities patch has done. Usually
informative logs.

Q. How will you skip worker during patch ?


If in your adctrl there are six option shown then seventh is hidden option.(If there are seven options visible
then 8th option is to Skip worker depending on ad version).

Q. Which two tables created at start of Apps Patch & drops at end of Patch ?
FND_INSTALLED_PROCESSES &AD_DEFFERED_JOBS are the tables that get updated while
applying a patch mainly d or unified driver.

Q. How to compile an Oracle Reports file ?


Utility adrepgen is used to compile Reports. Synatx is given below
adrepgen userid=apps\<psswd> source = $PRODUCT_TOP\srw\filename.rdf
dest=$PRODUCT_TOP\srw\filename.rdf stype=rdffile dtype=rdffile logfile=x.log overwrite=yes batch=yes
dunit=character

Q. What is difference between AD_BUGS & AD_APPLID_PATCHES ?


AD_BUGS holds information about the various Oracle Applications bugs whose fixes have been applied (ie.
patched) in the Oracle Applications installation.
AD_APPLIED_PATCHES holds information about the "distinct" Oracle Applications patches that have
been applied. If 2 patches happen to have the same name but are different in content (eg. "merged" patches),
then they are considered distinct and this table will therefore hold 2 records.
Thanks to Vikram Das for sharing below Q's/A's with readers.
Q. What exactly happens when you put an Oracle Apps instance in maintenance mode ?
Maintenance mode provides a clear separation between normal runtime operation of Oracle Applications and
system downtime for maintenance. Enabling the maintenance mode feature
a) shuts down the Workflow Business Events System and
b) sets up function security so that no Oracle Applications functions are available to users.
Used only during AutoPatch sessions, maintenance mode ensures optimal performance and reduces downtime
when applying a patch. (Source Metalink Note: 233044.1)

Concurrent Manager as name suggest is Manager which manages your concurrent requests in
Oracle Apps 11i

. You can assign single request or batch job & let concurrent manager manage these request.
Without going to technical definition & explanation about them I will go straight to the point
which you might be interested in looking as Sysadmin or Oracle Apps DBA i.e. from
startup/shutdown to configuration then finally to tuning. So tie up your belt & get ready for ride
to CM.
How to Start/Stop Concurrent Manager ? In Oracle Applications
11i as you might already be aware that all startup shutdown scripts in 11i(11.5.10) are in
$OAD_TOP/admin/script/$CONTEXT_NAME where $OAD_TOP is also called as
$COMMON_TOP and $CONTEXT_NAME is your SID_hostname , lets say your SID or
Instance Name is VISION and its on machine with name machine1 so your CONTEXT_NAME
will be VISION_machine1. So script to start/stop concurrent manager is adcmctl.sh where ad
(In my view) is application dba , cm is concurrent manager & ctl means control. Well if you really
want to explore more I'll suggest you open this file & go through it . If you open this script you
will see syntax to run it in start or stop mode so I am not going to spoon feed you by giving
syntax. When you run adcmctl.sh it records execution of this command in text file with name
adcmctl.txt at directory $COMMON_TOP/admin/log/$CONTEXT_NAME. adcmctl.sh called
another script startmgr which in turn calls batchmgr in $FND_TOP/bin and this is actual file
which fire up Internal Concurrent Manager Process (Open these two files as they are text file and
read content in these files.

Lets check important parameter in this file


 DISPLAY Set it to some valid XServer , if this is not set properly your reports display will
fail (specially one with PDF or Bar code dislay)
 DIAG_PARAM Diagnosis parameter it will take value Y or N with default N, If you
encounter some error while starting Concurrent Manager you change this to Y and then extra
logging will be enabled then check Concurrent Manager log file.
 CONCSUB stands for CONC(Concurrent) SUB(Submit) , used to submit concurrent request like shut
down concurrent manager.

 SLEEP holds the number of seconds that the manager should wait between checks for new
requests.
 MGRNAME is the name of the manager for locking and log purposes. So you can find if
this is icm(Internal Concurrent Manager), sm(Service Manager)
 RESTART is set to N if the manager should not restart itself after a crash. Otherwise, it is an
integer number of minutes. The manager will attempt a restart after an abnormal termination if
the past invocation lasted for at least RESTART minutes.
 PMON is the duration of time between process monitor checks (checks for failed workers).
The unit of time is concurrent manager iterations (request table checks). Default Value is 20 .
 QUESIZ is the duration of time between worker quantity checks (checks for number of
active workers). The unit of time is process monitor checks.

Please pay attention to PMON, QUESIZ and SLEEP as these will be used during Concurrent
Manager Tuning.

Where is Concurrent Manager Node ? If you don't know where is your CM here are few ways
to find your it .

 SQLPLUS> select node_name from apps.fnd_nodes where support_cp='Y';


 In context file (SID_hostname.xml ) under $APPL_TOP/admin , check for variable <
TIER_NODE oa_var="s_isConc" >YES< / TIER_NODE>, YES means this is Concurrent
Manager Node.
 Check for Administer Concurrent Manager request under SYSADMIN responsibility.
 "ps -ef | grep FNDLIBR" under application User on all nodes where FND(Foundation)
LIBR(Library) is executable.
How to troubleshoot Concurrent Manager ? If as an Oracle Apps DBA or Sysadmin you started
concurrent manager and encountered any error message, first place to start looking is log file of
Internal Concurrent Manager . Log files are very critical in understanding or finding any
problem. but where is my concurrent manager log file ? Default log file location for Apps
Concurrent Manager is $APPLCSF/$APPLLOG/ and file name format is SID_MMDD.mgr
(This is specific to 11i 11.5.10 and may very depedning on your Apps Version) where APPLCSF
& APPLLOG are environment variables (If APPLCSF is not set while starting Concurrent
Manager , logs will go to $FND_TOP/$APPLLOG), log file name format is your SID_ MM
(Month on which CM last started) DD (Date on which CM last started) .mgr (Manager)

From where its ICM ( Internal Concurrent Manager) picking SID_MMDD.mgr file name to
record logs , to find this open file adcmctl.sh , you will see entry like dd=`date '+%m%d'`;
MGR_NAME=$DB_NAME_$dd This has set Concurrent Manager name variable $mgrname
Now open file batchmgr here you will variable logfile= this is how application set Concurrent
Manager log file name.

Now depending on error message you have to troubleshoot & find solution to your problem.
Serch it in Metalink or Oracle Apps Forums.

Very common mistake which you often encounter when you view output of your concurrent
request whose display is PDF or any format which require XServer to run is REP-3000 oracle
toolkit this can be because of number of reasons but most common is that XServer is not running
on Server & Screen which is defined in your display variable. Make sure you have Xvfb or
Xvnc running on server where display is set. Check metalink note # 181244.1 Configuring VNC
Or XVFB As The X Server For Applications 11i If you are on solaris & even after after
installing Xvfb/Xvnc cannot access report Mail Me

Technical Interview Questions in E-


| Print |
Oracle Apps mail
Written by Anil Passi
Sunday, 17 September 2006
Please find a list of possible technical interview questions in Oracle Apps. All the contents on this
website are Copyright protected.

I will try to keep this upto date with any new questions that I come accross. New apps questions
will be added to the top of this post.

Most of the Oracle apps interview questions listed here are technical in natue. These interview
questions span various Oracle Apps modules plus FND & OA Framework. For Oracle HRMS
and Payroll interview questions visit HRMS Interview Questions

For Oracle iProcurement interview questions, kindly visit iProc Interview Questions .

Question: How will you migrate Oracle General Ledger Currencies and Sets of Books
Definitions fromone environment to another without reKeying? Will you use FNDLOAD?
Answer: FNDLOAD can not be used in the scenario. You can use migrator available in "Oracle
iSetup" Responsibility

Question: This is a very tough one, almost impossible to answer, but yet I will ask. Which Form
in Oracle Applications has most number of Form Functions?
Answer: "Run Reports". And why not, the Form Function for this screen has a parameter to
which we pass name of the "Request Group", hence securing the list of Concurrent Programs that
are visible in "Run Request" Form. Just so that you know, there are over 600 form functions for
"Run Reports"
Question: Which responsibility do you need to extract Self Service Personalizations?
Answer:Functional Administrator

Question: Can you list any one single limitation of Forms Personalization feature that was
delivered with 11.5.10
Answer:You can not implement interactive messages, i.e. a message will give multiple options
for Response. The best you can get from Forms Personalization to do is popup up Message with
OK option.

Question: You have just created two concurrent programs namely "XX PO Prog1" & "XX PO
Prog2". Now you wish to create a menu for Concurrent Request submission such that only these
two Concurrent Programs are visible from that Run Request menu. Please explain the steps to
implement this?
Answer:
a) Define a request group, lets say with name "XX_PO_PROGS"
b) Add these two concurrent programs to the request group "XX_PO_PROGS"
c) Define a new Form Function that is attached to Form "Run Reports"
d) In the parameter field of Form Function screen, enter
REQUEST_GROUP_CODE="XX_PO_PROGS"
REQUEST_GROUP_APPL_SHORT_NAME="XXPO" TITLE="XXPO:XX_PO_PROGS"
e) Attach this form function to the desired menu.

Question: Does Oracle 10g support rule based optimization?


Answer: The official stance is that RBO is no longer supported by 10g.

Question: Does oracle support partitioning of tables in Oracle Apps?


Answer: Yes, Oracle does support partitioning of tables in Oracle Applications. There are several
implementations that partition on GL_BALANCES. However your client must buy licenses to if
they desire to partition tables. To avoid the cost of licensing you may suggest the clients may
decide to permanently close their older GL Periods, such that historical records can be archived.
Note: Before running the archival process the second time, you must clear down the archive table
GL_ARCHIVE_BALANCES (don’t forget to export archive data to a tape).

Question: What will be your partitioning strategy on GL_BALANCES? Your views please?
Answer: This really depends upon how many periods are regularly reported upon, how many
periods are left open etc. You can then decide to partition on period_name, or period ranges, or
on the status of the GL Period.

Question: Does Oracle support running of gather stats on SYS schema in Oracle Apps?
Answer: If your Oracle Applications instance is on 10g, then you can decide to run stats for SYS
schema. This can be done by exec dbms_stats.gather_schema_stats('SYS');
Alternately using command
dbms_stats.gather_schema_stats('SYS',cascade=>TRUE,degree=>20);
I will prefer the former with default values.
If you wish to delete the stats for SYS use exec dbms_stats.delete_schema_stats('SYS');
You can schedule a dbms_job for running stats for SYS schema.

Question: Can you use concurrent program "Gather Schema Statistics" to gather stats on sys
schema in oracle apps?
Answer: No, "Gather Schema Statistics" has no parameters for SYS schema. Please use
dbms_job.

Question: Which table is used to provide drill down from Oracle GL into sub-ledger?
Answer: GL_IMPORT_REFERENCES

Question: What is the significance of profile option “Node Trust Level” in Oracle Apps.
Answer: If this profile option is set to a value of external against a server, then it signifies that
the specific mid-tier is External i.e. it will be exposed to the www. In other words this server is
not within the firewall of your client. The idea behind this profile option is to flag such middle-
tier so that special restrictions can be applied against its security, which means a very restricted
set of responsibilities will be available from such Middle-Tier.

Question: What is the significance of profile option “Responsibility Trust Level”.


Answer: In order to make a responsibility accessible from an external web tier, you must set
profile option “Responsibility Trust Level” at responsibility level to “External”. Only those
responsibilities that have this profile option against them will be accessible from External Middle
tiers.

Question: What else can you suggest to restrict the access to screens from external web tiers?
Answer: You may use URL filtering within Apache.

Question: What is the role of Document Manager in Oracle Purchasing?


Answer: POXCON is an immediate concurrent program. It receives pipe signal from the
application when a request is made for approval/reservations/receipts.

Question: How to debug a document manager in Oracle Apps?


Answer: Document manger runs within the concurrent manager in Oracle Applications. When
an application uses a Document Manager, it sends a pipe signal which is picked up by the
document manager.
There are two mechanisms by which to trace the document manager
1. Set the debugging on by using profile option
STEP 1. Set profile option "Concurrent:Debug Flags" to TCTM1
This profile should only generate debugs when set at Site level(I think, as I have only tried
site), because Document Manager runs in a different session.
STEP 2. Bounce the Document Managers
STEP 3. Retry the Workflow to generate debugs.
STEP 4. Reset profile option "Concurrent:Debug Flags" to blank
STEP 5. have a look at debug information in table fnd_concurrent_debug_info

2. Enable tracing for the document managers


This can be done by setting profile option “Initialization SQL Statement – Custom” against your
username before reproducing the issue. The value of this profile will be set so as to enable trace
using event 10046, level 12.

Question: You have written a Java Concurrent Program in Oracle Apps. You want to modify the
CLASSPATH such that new class CLASSPATH is effective just for this program.
Answer: In the options field of the concurrent program you can enter something similar to below.
-cp <your custom lib pathused by Java Conc Prog>
:/home/xxvisiondev/XXDEVDB/comn/java/appsborg.zip:/home/xxvisiondev/XXDEVDB/comn/j
ava

Question: How will you open a bc4j package in jdeveloper?


Answer: Oracle ships a file named server.xml with each bc4j package. You will need to ftp that
file alongside other bc4j objects(VO’s, EO’s, AM, Classes etc).
Opening the server.xml will load the complete package starting from AM(application module).
This is a mandatory step when building Extensions to framework.

Question: In OA Framework Self-Service screen, you wish to disable a tab. How will you do it?
Answer: Generally speaking, the tabs on a OA Framework page are nothing but the SubMenus.
By entering menu exclusion against the responsibility, you can remove the tab from self service
page.

Question: In self service, you wish to change the background color and the foreground text of the
OA Framework screens to meet your corporate standards. How will you do it?
Answer: You will need to do the below steps
a….Go to Mid Tier, and open $OA_HTML/cabo/styles/custom.xss
b…Enter below text( change colours as needed)
<style name="DarkBackground">
<property name="background-color">#000066</property>
</style>
<style name="TextForeground">
<property name="color">#0000FF</property>
</style>
c… cd $OA_HTML/cabo/styles/cache
d…Take a backup of all the css files.
e…Delete all the files of following pattern oracle-desktop*.css
The idea here is to delete the cache. Next time when you logon to Oracle Apps Self Service, the
Framework will rebuild the css file if found missing for your browser.

Question: Can you extend and substitue a root AM ( Application Module) in OA Framework
using JDeveloper.
Answer: You can extend the AM in jDeveloper, but it doesn’t work( at least it didn’t work in
11.5.9). I am hopeful that Oracle will deliver a solution to this in the future.

Question: In a workflow notification, you have a free text response field where the user enters
the Vendor Number for the new vendor. You want to validate the value entered in the notification
response field upon the submission of a response. How will you do it?
Answer: You will need to attach a post notification function to the Workflow Notification.
The PL/SQL code will look similar to below:-
The below code will display an error in the notification when user attempts to create a Duplicate
Vendor Number.
PROCEDURE validate_response_from_notif
(
itemtype IN VARCHAR2
,itemkey IN VARCHAR2
,actid IN NUMBER
,funcmode IN VARCHAR2
,RESULT IN OUT VARCHAR2
) IS
l_nid NUMBER;
l_activity_result_code VARCHAR2(200);
v_newly_entered_vendor_num VARCHAR2(50);
CURSOR c_get_response_for_new_vendor IS
SELECT wl.lookup_code
FROM wf_notification_attributes wna
,wf_notifications wn
,wf_message_attributes_vl wma
,wf_lookups wl
WHERE wna.notification_id = l_nid
AND wna.notification_id = wn.notification_id
AND wn.message_name = wma.message_name
AND wn.message_type = wma.message_type
AND wna.NAME = wma.NAME
AND wma.SUBTYPE = 'RESPOND'
AND wma.format = wl.lookup_type
AND wna.text_value = wl.lookup_code
AND wma.TYPE = 'LOOKUP'
AND decode(wma.NAME, 'RESULT', 'RESULT', 'NORESULT') = 'RESULT';
BEGIN
IF (funcmode IN ('RESPOND'))
THEN
l_nid := wf_engine.context_nid;
OPEN c_get_response_for_new_vendor;
FETCH c_get_response_for_new_vendor
INTO l_activity_result_code;
CLOSE c_get_response_for_new_vendor;
v_newly_entered_vendor_num :=
wf_notification.getattrtext(l_nid,'NEWLY_ENTERED_VENDOR_NUM_4_PO');
IF l_activity_result_code = 'NEW_VENDOR'
AND does_vendor_exist(p_vendor => v_newly_entered_vendor_num)
THEN
RESULT := 'ERROR: VendorNumber you entered already exists';
RETURN;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
RESULT := SQLERRM;
END validate_response_from_notif;

Question: How to make concurrent program end with warning?


Answer: If the concurrent program is of type PL/SQL, you can assign a value of 1 to the
“retcode” OUT Parameter.
For a Java Concurrent program, use the code similar to below
ReqCompletion lRC;
//get handle on request completion object for reporting status
lRC = pCpContext.getReqCompletion();
lRC.setCompletion(ReqCompletion.WARNING, "WARNING");

Question: How do you link a Host type concurrent program to Concurrent Manager?
Answer: Assuming your executable script is LOADPO.prog, then use the commands below
cd $XXPO_TOP/bin
ln -s $FND_TOP/bin/fndcpesr $XXPO_TOP/bin/LOADPO

Question: How do you know if a specific Oracle patch has been applied in apps to your
environment.
Answer: Use table ad_bugs, in which column bug_number is the patch number.
SELECT bug_number
,to_char(creation_date, 'DD-MON-YYYY HH24:MI:SS') dated
FROM apps.ad_bugs
WHERE bug_number = TRIM('&bug_number') ;

Question: How do you send a particular Oracle Apps Workflow Activity/Function within a
workflow process into background mode.
Answer: If cost of the workflow activity is greater than 50, then the workflow activity will be
processed in background mode only, and it won’t be processed in online mode.

Question: What are the various ways to kick-off a workflow


Answer: You can eiter use wf_engine.start_process or you can attach a runnable process such
ghat it subscribes to a workflow event.

Question: When starting (kicking off) an oracle workflow process, how do you ensure that it
happens in a background mode?
--a)if initiating the process using start_process, do the below
wf_engine.threshold := -1;
wf_engine.createprocess(l_itemtype
,l_itemkey
,'<YOUR PROCESS NAME>');
wf_engine.startprocess(l_itemtype, l_itemkey)
--B) When initiating the workflow process through an event subscription, set the Execution
Condition Phase to be equal to or above 100 for it to be executed by background process.

Question: On 10g, how will you use awr?


Answer: By running below scripts. These are both the same scripts, but with differing
parameters.
$ORACLE_HOME/rdbms/admin/awrrpt.sql
$ORACLE_HOME/rdbms/admin/awrrpti.sql

Question : How will you configure Apache to run in Debug mode, specifically usefull when
debugging iProcurement ( prior to 11.5.10).
Answer: After 11.5.10, FND Logging can be used for debugging Oracle iProcurement.
Prior to 11.5.10
----STEPS IN A NUTSHELL-----
cd $ORACLE_HOME/../iAS/Apache
vi $ORACLE_HOME/../iAS/Apache/Jserv/etc/ssp_init.txt
DebugOutput=/home/<<SID>>/ora9/iAS/Apache/Apache/logs/debug.log
DebugLevel=5
DebugSwitch=ON

vi $ORACLE_HOME/../iAS/Apache/Jserv/etc/jserv.conf
ApJServLogLevel debug
vi $ORACLE_HOME/../iAS/Apache/Jserv/etc/jserv.properties
log=true

Question: How will you add a new column to a List Of Values ( LOV ) in Oracle Applications
Framework? Can this be done without customization?
Answer: Yes, this can be done without customization, i.e. by using OA Framework Extension
coupled with Personalization. Implement the following Steps :-
a) Extend the VO ( View Object ), to implement the new SQL required to support the LOV.
b) Substitute the base VO, by using jpximport [ similar to as explained in Link ]
c) Personalize the LOV Region, by clicking on Add New Item. While adding the new Item, you
will cross reference the newly added column to VO.

Question: Can you do fnd_request.submit_request from SQL Plus in Oracle?


Answer: You will need to initialize the global variables first using fnd_global.initialize
DECLARE
v_session_id INTEGER := userenv('sessionid') ;
BEGIN
fnd_global.initialize
(
SESSION_ID => v_session_id
,USER_ID => <your user id from fnd_user.user_id>
,RESP_ID => <You may use Examine from the screen PROFILE/RESP_ID>
,RESP_APPL_ID => <You may use Examine from the screen
PROFILE/RESP_APPL_ID>
,SECURITY_GROUP_ID => 0
,SITE_ID => NULL
,LOGIN_ID => 3115003--Any number here
,CONC_LOGIN_ID => NULL
,PROG_APPL_ID => NULL
,CONC_PROGRAM_ID => NULL
,CONC_REQUEST_ID => NULL
,CONC_PRIORITY_REQUEST => NULL
);
commit ;
END ;
/
Optionally you may use fnd_global.apps_initialize, which internally calls fnd_global.initialize
fnd_global.apps_initialize(user_id => :user_id,
resp_id => :resp_id,
resp_appl_id => :resp_appl_id,
security_group_id => :security_group_id,
server_id => :server_id);
By doing the above, your global variables upon which Concurrent Managers depend upon will be
populated. This will be equivalent to logging into Oracle Apps and submitting the concurrent
request from a responsibility.

Question: You are told that the certain steps in the Oracle Apps Form/Screen are running slow,
and you are asked to tune it. How do you go about it.
Answer: First thing to do is to enable trace. Preferably, enable the trace with Bind Variables.
This can be done by selecting menu Help/Diagnostics/Trace/”Trace With Binds and Wait”
Internally Oracle Forms issues a statement similar to below:-
alter session set events='10046 trace name context forever, level 12' ;

Enable Trace with Bind Variables in Apps

This will enable the trace with Bind Variable values being shown in the trace file.
The screen in Oracle Apps will also provide the name of the trace file which is located in directly
identified by
select value from v$parameter where name like '%us%r%dump%'
Doing a tkprof with explain plan option, reviewing plans and stats in trace file can help identify
the slow performing SQL.

Question: What is the difference between running Gather Stats and “Program –
Optimizer[RGOPTM]” in Oracle General Ledger?
Answer: “Gather Stats” will simply gather the stats against existing tables, indexes etc. However
Gather Stats does not create any new indexes. But “Program – Optimizer[RGOPTM]” can create
indexes on GL_CODE_COMBINATIONS, provided accounting segment has the indexed flag
enabled,
Question: You have written a piece of code in POR_CUSTOM_PKG for Oracle iProcurement,
but its not taking any effect? What may be the reason?
Answer: Depending upon which procedure in POR_CUSTOM_PKG has been programmed, one
or more of the below profile options must be set to Yes
POR: Enable Req Header Customization
POR: Enable Requisition Line Customization
POR: Enable Req Distribution Customization

Question: What is the key benefit of punching out to suppliers catalogs rather than loading their
catalogs locally in Oracle iProcurement?
Answer: Punchout has several advantages like, Catalogs don’t need to be loaded locally saves
space on your system. You can get up-to-date list of catalogs by punching out and also you get
the benefit of up-to-date pricing information on vendor items.

Question: Does oracle have a test environment on exchange?


Answer: http://testexchange.oracle.com

Question: Does Oracle Grants use its own schema or does it uses Oracle Project Accounting
schema?
Answer: Although Oracle Grants has its own schema i.e. GMS, it reuses many of the tables with
in Oracle Projects Schema like PA_PROJECTS_ALL, PA_EXPENDITURE_ITEMS_ALL,
PA_EXPENDITURE_TYPES etc.

Question: How to make an Oracle Report Type concurrent program produce an excel friendly
output?
Answer: Comma can be concatenated between the column values, however a better option is to
create tab delimited file, as it takes care of commas within the string.
For this, use SQL similar to below in the report
select 'a' || chr(9) || 'b' from dual;

Question: What are the settings needed for printing bitmap reports?
Answer: Get your DBA to configure two files i.e. uiprint.txt & default.ppd
For details, refer to Metalink Note 189708.1

Question: For a PL/SQL based concurrent program do you have to issue a commit at the end?
Answer: The concurrent program runs within its own new session. In APPS, the default database
setting enforces a commit at the end of each session. Hence no explicit COMMIT is required.
Question: What is the best way to add debugging to the code in apps?
Answer: Use fnd_log.string , i.e. FND Logging. Behind the scenes Oracles FND Logging uses
autonomous transaction to insert records in a table named fnd_log_messages.
For example
DECLARE
BEGIN
fnd_log.STRING(log_level => fnd_log.level_statement
,module => 'xxxx ' || 'pkg/procedurename '
,message => 'your debug message here');
END ;
Three profile options effecting FND Logging are
FND: Debug Log Mode
FND: Debug Log Enabled
FND: Debug Log Module

Question: If you wish to trigger of an update or insert in bespoke table or take some action in
response to a TCA record being created or modified, how would you do it? Will you write a
database triggers on TCA Tables?
Answer: There are various pre-defined Events that are invoked from the Oracle TCA API’s.
TCA was Oracle’s first initiative towards a fully API based approach, which means the screen
and the processes all use the same set of APIs for doing same task.
In order to take an action when these events occur, you can subscribe a custom PL/SQL
procedure or a Custom Workflow to these events. Some of the important TCA events are listed
below:-
oracle.apps.ar.hz.ContactPoint.update
oracle.apps.ar.hz.CustAccount.create
oracle.apps.ar.hz.CustAccount.update
oracle.apps.ar.hz.CustAcctSite.create
oracle.apps.ar.hz.CustAcctSite.update
oracle.apps.ar.hz.CustAcctSiteUse.create
oracle.apps.ar.hz.CustAcctSiteUse.update
oracle.apps.ar.hz.Location.create
oracle.apps.ar.hz.Location.update
oracle.apps.ar.hz.Organization.create
oracle.apps.ar.hz.Organization.update
oracle.apps.ar.hz.PartySite.create
oracle.apps.ar.hz.PartySite.update
oracle.apps.ar.hz.PartySiteUse.create
oracle.apps.ar.hz.PartySiteUse.update
oracle.apps.ar.hz.Person.create
oracle.apps.ar.hz.Person.update

Question: In Oracle OA Framework, is the MDS page/document definition stored in database or


in the file system?
Answer: The MDS document details are loaded into database, in the following sets of tables.
JDR_ATTRIBUTES
JDR_ATTRIBUTES_TRANS
JDR_COMPONENTS
JDR_PATHS
The Document is loaded via XMLImporter, as detailed in XMLImporter Article

Question: In a Oracle Report data group, you have a “data link” between two queries. How do
you ensure that the data link is made Outer Joined?
Answer: The data link is an Outer Join by default.

Question: How does substitution work in OA Framework?


What are the benefits of using Substitution in OA Framework?
Answer: Based on the user that has logged into OA Framework, MDS defines the context of the
logged in user. Based upon this logged in context, all applicable personalization are applied by
MDS. Given that substitutions are loaded as site level personalizations, MDS applies the
substituted BC4J objects along with the personalizations. The above listed steps occur as soon as
Root Application module has been loaded.
The benefit of using Substitution is to extend the OA Framework without customization of the
underlying code. This is of great help during Upgrades. Entity Objects and Validation Objects
can be substituted. I think Root AM’s can’t be substituted given that substitution kicks off after
Root AM gets loaded.

Question: In OA Framework, once your application has been extended by substitutions, is it


possible to revert back to remove those substitutions?
Answer: yes, by setting profile option “Disable Self-Service Personal%” to Yes, keeping in mind
that all your personalizations will get disabled by this profile option. This profile is also very
useful when debugging your OA Framework based application in the event of some error. By
disabling the personalization via profile, you can isolate the error, i.e. is being caused by your
extension/substitution code or by Oracle’s standard functionality.

Question: How can you import invoices into Oracle Receivables?


Answer: You can either use AutoInvoice by populating tables RA_INTERFACE_LINES_ALL,
RA_INTERFACE_DISTRIBUTIONS_ALL & RA_INTERFACE_SALESCREDITS_ALL.
Alternately you may decide to use API ar_invoice_api_pub.create_single_invoice for Receivables
Invoice Import.

Question: How do you setup a context sensitive flexfield


Answer: Note: I will publish a white paper to sho step by step approach.
But for the purpose of your interview, a brief explanation is…a)Create a reference field, b) Use
that reference field in “Context Field” section of DFF Segment screen c) For each possible value
of the context field, you will need to create one record in section “Context Field Value” ( beneath
the global data elements).

Question: Does Oracle iProcurement use same tables as Oracle Purchasing?


Answer: Yes, iProcurement uses the same set of requisition tables as are used by Core
Purchasing.

Question: What is the name of the schema for tables in tca


Answer: AR (at least till 11.5.10, not sure about 11.5.10).

Question: Are suppliers a part of TCA?


Answer: Unfortunately not yet. However, Release 12 will be merging Suppliers into TCA.

Question: What is the link between order management and purchasing


Answer: Internal Requisitions get translated into Internal Sales Orders.

Question: How would you know if the purchase order XML has been transmitted to vendor,
looking at the tables.
Answer: The XML delivery status can be found from a table named ecx_oxta_logmsg. Use the
query below
SELECT edoc.document_number
,decode(eol.result_code, 1000, 'Success', 'Failure') AS status
,eol.result_text
FROM ecx_oxta_logmsg eol
,ecx_doclogs edoc
,ecx_outbound_logs eog
WHERE edoc.msgid = eol.sender_message_id
AND eog.out_msgid = edoc.msgid
ORDER BY edoc.document_number

Question: You have done forms personalization, now how will you move it from one
environment to another?
Answer: Use FNDLOAD. For examples visit FNDLOAD Article

Question: What are the key benefits of forms personalization over custom.pll?
Answer:
-->Multiple users can develop forms personalization at any given point in time.
-->It is fairly easy to enable and disable forms personalizations.
-->A programmer is not required to do simple things such as hide/disable fields or buttons.
-->Provides more visibility on customizations to the screen.

Question: Tell me some limitations of forms personalization when compared to CUSTOM.pll?


Answer:
-->Can't create record group queries, hence can’t implement LOV Query changes.
-->Can't make things interactive, i.e. can’t have a message box that gives multiple choices for
example Proceed or Stop etc.

Question: Give me one example where apps uses partitioning?


Answer: WF_LOCAL_ROLES

Question: Give me one example of securing attributes in iProcurement.


Answer: You can define Realm to bundle suppliers into a Category. Such realm can then be
assigned to the User using Define User Screen. Security Attribute ICX_POR_REALM_ID can be
used. By doing so, the user will only be made visible those Punchout suppliers that belong to the
realm against their securing attributes.

Question: Can you send blob attachments via workflow notifications?


Answer: Yes, you can send BLOB Attachments.

Restart or Bounce Apache in Oracle Apps 11i

I find this script very handy for bouncing the Apache, specially when
working on Self Service Applications.

Please find the two commands that I use for bouncing the Apache
$COMMON_TOP/admin/scripts/$TWO_TASK*/adapcctl.sh stop
$COMMON_TOP/admin/scripts/$TWO_TASK*/adapcctl.sh start
Of course this needs to be done in Middle Tier of Oracle Applications.
In case you have modified any java or class file in OAF ( Oracle Applications
Framework ), then Apache bounce becomes mandatory for those changes to take effect.
In case you modify and load the XML Document in Oracle Framework, then
it is noticed, for those XML changes to take effect, complete bounce of Middle
Tier is required in Oracle Apps.
If your client is still stuck with AK Developer, then Apache bounce will be required
after akload has been executed.

1. What happens if the ICM goes down?


All the other managers will keep working. ICM only takes care of the queue control requests,
which means starting up and shutting down other concurrent managers.

2. How will you speed up the patching process?


You can merge multiple patches.
You can create a response file for non-interactive patching.
You can apply patches with options (nocompiledb, nomaintainmrc, nocompilejsp)
and run these once after applying all the patches.
3. How will you handle an error during patching?
Look at the log of the failed worker, identify and rectify the error and restart the worker
using adctrl utility.
4. Provide a high-level overview of the cloning process and post-clone manual steps.
Run pre-clone on the source (all tiers), duplicate the DB using RMAN (or restore the DB
from a hot or cold backup), copy the file systems and then run post-clone on the target (all
tiers).
Manual steps (there can be many more):
1. Change all non-site profile option values (RapidClone only changes site-level
profile options).
2. Modify workflow and concurrent manager tables.
3. Change printers.

5. Provide an introduction to AutoConfig. How does AutoConfig know which value


from the XML file needs to be put in which file?
AutoConfig uses a context file to maintain key configuration files. A context file is an
XML file in the $APPL_TOP/admin directory and is the centralized repository.
When you run AutoConfig it reads the XML files and creates all the AutoConfig managed
configuration files.
For each configuration file maintained by AutoConfig, there exists a template file which
determines which values to pick from the XML file.

6. Can you tell me a few tests you will do to troubleshoot self-service login problems?
Which profile options and files will you check?

1. Check guest user/password in the DBC file, profile option guest user/password,
the DB.
2. Check whether apache/jserv is up.
3. Run IsItWorking, FND_WEB.PING, aoljtest, etc.

7. What could be wrong if you are unable to view concurrent manager log and output
files?
Most likely the FNDFS listener is down. Look at the value of OUTFILE_NODE_NAME
and LOGFILE_NODE_NAME in the FND_CONCURRENT_REQUESTS table. Look at
the FND_NODES table. Look at the FNDFS_ entry in tnsnames.ora.

8. How will you change the location of concurrent manager log and output files?
The location of log files is determined by parameter $APPLCSF/$APPLLOG and that of
output files by $APPLCSF/$APPLOUT.

9. If the user is experiencing performance issues, how will you go about finding the
cause?
1. Trace his session (with waits) and use tkprof to analyze the trace file.
2. Take a statspack report and analyze it.
3. O/s monitoring using top/iostat/sar/vmstat.
4. Check for any network bottleneck by using basic tests like ping results.
10. How will you change the apps password?
1.
2. Use FNDCPASS to change APPS password.
3. Manually modify wdbsvr.app/cgiCMD.dat files.
4. Change any DB links pointing from other instances.
11. Provide the location of the DBC file and explain its significance and how applications
know the name of the DBC file.
1. Location: $FND_TOP/secure directory.
2. Significance: Points to the DB server amongst other things.
3. The application knows the name of the DBC file by using profile option
"Applications Database Id."

Set # 1 : Compatibility
On which databases can Oracle Applications be installed on (i.e. Oracle, SQL Server,
Informix, etc.) ?
Answer :-
Oracle database only.
Set # 2 : FND vs. AOL
What is the difference between “FND” and “AOL” ? What are they ?What do they mean ?
Answer:- FND is the system name of core Application Object Library(AOL).AOL consists of the
entire schema which forms the base layer for Functioning of Oracle Applications(without which
the Apps can not work).
Set # 3 : Schemas
What is the difference between the following schemas and when are they being
Used by the system :
1) Apps
2) Applsys
3) Applsyspub
Answer :-
Apps is the database schema which used for connecting applications(front end) user It internally
uses the Applsyspub user for connecting .It comprises synonyms for all the individual module’s
objects. Concurrent Requests also use the apps db schema for executing the requests.
Applsys is a schema in oracle applications which contains the information about the FND or
Foundation Tables.
Applsyspub is the schema which used internally in Oracle Applications (Gateway User) by
application Users.
Set # 4 : Techstack

What do we mean by Techstack ?


What comprises the Techstack ?
Answer:-
In Oracle Applications the Technical Software Components which comprises of the entire
Applications is called Techstack.
They are
1. Db Techstack.—(Database (Oracle RDBMS ) Software.
2. Applications Techstack.(in 11i the 8.06 (i.e. for forms ,reports and for PL/SQL and other
libraries) and 8.1.7 for Application Server).(in R12 the releases 10.1.2 and 10.1.3).
Set # 5 : “GL” Database User

When does the system logs in as Database user “gl” and why ?
Answer:-
When using the General Ledger Module Responsibilities the system logs in as Database user gl
and this is done for database security.
Set # 6 : Password Change

Before changing password for “apps”, what would you say are the top three
Precautions to be taken (before doing in Production) ?
Can we change the password for user “guest” ? Why ?
Answer:-
Ensure that downtime is taken for changing the apps password.
Ensure that no application users are connected
Ensure that no concurrent requests are running .
And make the application tier down and change the apps user password. This is best approach.
We can change the Guest user’s password. This is done for advanced security.
Set # 7 : “xml” vs. “dbc” files

What’s the difference between the “xml” file and the “dbc” file ? How are they
Being used by the system ?
Answer :-
Xml file in oracle Applications is the context file which is maintained by Autoconfig to maintain
the Applications configuration in a centralized manner.
Dbc file is the file used to connect the application user to the database.
Set # 8 : TWO_TASK

What is the “TWO_TASK” variable ? How does Oracle Applications uses it ?


Answer:-
Oracle Applications System maintains TWO_TASK variable for the applications to work
properly.
It will be common for database tier and application tier. So that from applications tier users can
connect to the database without issues.
Set # 9 : $AD_TOP

What is $AD_TOP ?
What does “AD” stand for ?
Which type of user mostly uses this directory ?
Answer :-
AD_TOP is the TOP for Application DBA Module which contains all the essential utilities and
files used for maintaining the Oracle Applications System.
AD stand for Applications DBA.
Application DBA’s mostly use this directory.

Set # 10: Workflows

What is a workflow?
How does Oracle Applications uses workflows?
What would be the top three things to monitor for workflows ?
What would be the top three typical questions to ask about workflows ?
Does a Workflow have a version ? If so, how can we find out ?
Answer :-
Workflow is a module in Oracle Applications .It is also a Standalone Product. Normally
workflow is used to carry out the flow of work by approving system and this is mostly used in
Order Management.
The top three things to monitor workflow would be.
1.Login as Sysadmin and by using the workflow Administrator web applications monitor for any
pending or errored out workflows and correct it.
2.Make sure the “Synch workflow tables” concurrent program is running properly without errors
and monitoring the Workflow Managers.
3.Monitor the health of Workflow Notification Mailers .

The Top three typical questions to ask about workflows are.

1.How will you configure a workflow Notification Mailers.


2.How will you navigate and troubleshoot for finding out errored workflow notifications.
3.How will you troubleshoot that if workflow notification mailer is not working
properly(not sending e-mails).
Workflow has a Version, by executing the wfver.sql in FND_TOP/sql we can find this
component’s version.

How will you find the pending and running concurrent requests from SQL prompt?
after logging as apps user in sqlplus
run this sql $FND_TOP/sql/afrqrun.sql
This will show the pending and running concurrent requests in the instance
Newly Added

What is Transaction Manager(Concurrent Manager) and its purpose?


Ans:-
Transaction Manager is defined so that it has a special pool of database resource to execute
concurrent requests.
Its not like other concurrent managers and its not dependent on any concurrent queue tables. i.e
when a client submits concurrent request which is assigned to the Transaction Manager then it
immediately executes that conc request. This manager is used to run high priority concurrent
requests.

How can you restrict application access to only certain users?


Ans :- By editing the apps.conf configuration file in Apache/conf directory and adding the
directive and by giving Allow and bouncing the apache.
Other users will get 403 forbidden error. You can also customize the error message in httpd.conf.

Question :- What are the different options in adpatch and explain about those.
adpatch apply=no
This is done for testing the patch with the instance.This will not apply the patch but generate a
logfile which we can check.
adpatch preinstall=y
mostly used in upgrades or specifically when told in a patch readme,This option applies ad
updates first then do the rest
nocompiledb
nocompilejsp
nodatabaseportion
nocopyportion
nogenerateportion
nojcopy
nogenform
nolink
adpatch option=hotpatch(for hot mode)–not adivisable for some patches(especially hr global like
that)..

How will you increase workers during patching in apps?


Although there is noway to increase the workers dynamically in adpatch,what you can do is fail
all the workers using
adcontroller and came out of the adpatch session and restart the patching using adpatch,now the
second time increase
the workers.

How will you reduce downtime in patching(adpatch) during upgrade or normally?


you can apply the copyportion and compile portion in a test system to application tier and when
doing the production upgrade just apply the database portion and copy the application
filesystem,also you use nocompiledb in many of the patches and finally compile the apps schema.

RapidClone for Mission Critical Apps Systems

Generally the Rapid Clone Procedure always talks about cloning with Cold Backups.
But question arises as how to clone mission critical apps environments.

Preclone procedure is the same for mission critical systems — as you can execute preclone when
the system is online.
you can use the hotbackups either manual or by RMAN to restore the apps database.

after copying the db stack in the target system run adcfgclone.pl dbTechstack to
make the target dbms_oraclehome ok, then use the standard recovery procedures either manually
or using RMAN
to recover the database.

You can very well copy the apps filesystem while the system is up as this will not cause any
issues.
and you can finish the clone by running adcfgclone.pl appsTier.

So It is always possible to clone mission critical environments with hotbackup and RMAN
backups.

Oracle Apps R12 adcfgclone.pl prompts(rapid clone r12)

In this post I have given the actual prompts in the stage adcfgclone.pl(prompts).It is very useful
for those who have not used R12 rapid clone.

[applvis@r12apps bin]$ perl adcfgclone.pl appsTier

Using Java from /u02/oracle/apps/apps_st/comn/clone/bin/../jre


Enter the APPS user password:

JDBCCLASSES = /u02/oracle/apps/apps_st/comn/clone/jlib/ojdbc14.jar
XMLPCLASSES = /u02/oracle/apps/apps_st/comn/clone/jlib/xmlparserv2.jar
LOCAL_CPATH =

/
u02/oracle/apps/apps_st/comn/clone/jlib/java:/u02/oracle/apps/apps_st/comn/clone/jlib/xmlparser
v2.jar:/u02/oracle/apps/apps_st/comn/clone/

jlib/ojdbc14.jar

First Creating a new context file for the cloned system.


The program is going to ask you for information about the new system:

applvis
= applvis

dba
= dba

Running:
/u02/oracle/apps/apps_st/comn/clone/bin/../jre/bin/java -Xmx600M -cp

/
u02/oracle/apps/apps_st/comn/clone/jlib/java:/u02/oracle/apps/apps_st/comn/clone/jlib/xmlparser
v2.jar:/u02/oracle/apps/apps_st/comn/clone/

jlib/ojdbc14.jar oracle.apps.ad.context.CloneContext -e
/u02/oracle/apps/apps_st/comn/clone/bin/../context/apps/CTXORIG.xml -validate

-pairsfile /tmp/adpairsfile.lst -stage /u02/oracle/apps/apps_st/comn/clone 2> /tmp/adcfgclone.err;


echo $? > /tmp/adcfgclone.res
Enter the APPS password : apps

Log file located at /u02/oracle/apps/apps_st/comn/clone/bin/CloneContext_06291504.log

Provide the values required for creation of the new APPL_TOP Context file.

Target hostname (virtual or normal) [r12apps]:

Target system database SID:vis

Target system database server node [r12apps]:

Target system base directory for source homes:/u02/oracle

Target system base directory for instance homes [/u02/oracle/inst]:

Do you want to preserve the Display set to sourcehost:0.0 (y/n) [y] ?:n

Target system Display [r12apps:0.0]:

Do you want the the target system to have the same port values as the source system (y/n) [y] ?:n

Clone Context uses the same port pool mechanism as the Rapid Install.
Once you choose a port pool, Clone Context will validate the port availability.

Enter the port pool to be used for the target system node [0-99]:
55

Checking the port pool 55


done: Port Pool 55 is free
Report file located at /u02/oracle/inst/apps/vis_r12apps/admin/out/portpool.lst
Complete port information available at /u02/oracle/inst/apps/vis_r12apps/admin/out/portpool.lst
UTL_FILE_DIR on database tier consists of the following directories.

1. /usr/tmp
2. /u02/oracle/db/tech_st/10.2.0/admin/vis_r12apps/udump
3. /u02/oracle/db/tech_st/10.2.0/appsutil/outbound/vis_r12apps
4. /usr/tmp
Choose a value which will be set as APPLPTMP value on the target node [1]:3

Creating the new APPL_TOP Context file from :


/u02/oracle/apps/apps_st/comn/clone/context/apps/adxmlctx.tmp

The new APPL_TOP context file has been created :


/u02/oracle/inst/apps/vis_r12apps/appl/admin/vis_r12apps.xml

Log file located at /u02/oracle/apps/apps_st/comn/clone/bin/CloneContext_06291504.log


Check logfile /u02/oracle/apps/apps_st/comn/clone/bin/CloneContext_06291504.log for details.

Running Rapid Clone with command:


perl /u02/oracle/apps/apps_st/comn/clone/bin/adclone.pl
java=/u02/oracle/apps/apps_st/comn/clone/bin/../jre mode=apply

stage=/u02/oracle/apps/apps_st/comn/clone component=appsTier method=CUSTOM

appctxtg=/u02/oracle/inst/apps/vis_r12apps/appl/admin/vis_r12apps.xml showProgress
contextValidated=true
Running:
perl /u02/oracle/apps/apps_st/comn/clone/bin/adclone.pl
java=/u02/oracle/apps/apps_st/comn/clone/bin/../jre mode=apply

stage=/u02/oracle/apps/apps_st/comn/clone component=appsTier method=CUSTOM

appctxtg=/u02/oracle/inst/apps/vis_r12apps/appl/admin/vis_r12apps.xml showProgress
contextValidated=true

XMLPARSER: /u02/oracle/apps/apps_st/comn/clone/jlib/xmlparserv2.jar
JDBC: /u02/oracle/apps/apps_st/comn/clone/jlib/ojdbc14.jar
CLASSPATH:

/
u02/oracle/apps/apps_st/comn/clone/jlib/xmlparserv2.jar:/u02/oracle/apps/apps_st/comn/clone/jli
b/ojdbc14.jar:/u02/oracle/apps/apps_st/comn

/
clone/jlib/java:/u02/oracle/apps/apps_st/comn/clone/jlib/oui/OraInstaller.jar:/u02/oracle/apps/app
s_st/comn/clone/jlib/oui/ewt3.jar:/u02/o

racle/apps/apps_st/comn/clone/jlib/oui/share.jar:/u02/oracle/apps/apps_st/comn/clone/jlib/oui/srv
m.jar:/u02/oracle/apps/apps_st/comn/clone/

jlib/ojmisc.jar
OUI CLASSPATH:

/
u02/oracle/apps/apps_st/comn/clone/jlib/oui/OraInstaller.jar:/u02/oracle/apps/apps_st/comn/clone
/jlib/oui/ewt3.jar:/u02/oracle/apps/apps_s

t/comn/clone/jlib/oui/xmlparserv2.jar:/u02/oracle/apps/apps_st/comn/clone/jlib/oui/share.jar:/u02
/oracle/apps/apps_st/comn/clone/jlib/oui/s

rvm.jar:/u02/oracle/apps/apps_st/comn/clone/jlib/ojmisc.jar:/u02/oracle/apps/apps_st/comn/clone
/jlib/xmlparserv2.jar:/u02/oracle/apps/apps_

st/comn/clone/jlib/ojdbc14.jar:/u02/oracle/apps/apps_st/comn/clone/jlib/java
Setting LD_LIBRARY_PATH to /u02/oracle/apps/apps_st/comn/clone/oui/lib/linux
Beginning application tier Apply – Mon Jun 29 15:05:14 2009
/u02/oracle/apps/apps_st/comn/clone/bin/../jre/bin/java -Xmx600M
-DCONTEXT_VALIDATED=true -Doracle.installer.oui_loc=/oui -classpath

/
u02/oracle/apps/apps_st/comn/clone/jlib/xmlparserv2.jar:/u02/oracle/apps/apps_st/comn/clone/jli
b/ojdbc14.jar:/u02/oracle/apps/apps_st/comn

/
clone/jlib/java:/u02/oracle/apps/apps_st/comn/clone/jlib/oui/OraInstaller.jar:/u02/oracle/apps/app
s_st/comn/clone/jlib/oui/ewt3.jar:/u02/o

racle/apps/apps_st/comn/clone/jlib/oui/share.jar:/u02/oracle/apps/apps_st/comn/clone/jlib/oui/srv
m.jar:/u02/oracle/apps/apps_st/comn/clone/

jlib/ojmisc.jar oracle.apps.ad.clone.ApplyAppsTier -e
/u02/oracle/inst/apps/vis_r12apps/appl/admin/vis_r12apps.xml -stage

/u02/oracle/apps/apps_st/comn/clone -showProgress
APPS Password : Log file located at
/u02/oracle/inst/apps/vis_r12apps/admin/log/ApplyAppsTier_06291505.log
– 3% completed

What is FNDLOAD in Detail


FNDLOAD is used generally to download and upload from/into the apps database –the
definitions of responsibilites ,
concurrent Programs,Menus,etc.

As an Apps DBA if you are given an ldt file and told to apply that in production then do the
following

grep lct the ldt file

you will get the lct name (which is used as config file to upload the ldt file)

then use FNDLOAD giving the parameters

here an example is given

downloading(mostly tech consultants does this)..

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct


XXSC_POS_ORDER_EXTRACT.ldt PROGRAM APPLICATION_SHORT_NAME=”PO”
CONCURRENT_PROGRAM_NAME=”XXSC_POS_ORDER_EXTRACT”

Uploading(Apps DBA job)

1.given ldt here is XXCF_WH_HAT02_OPR_HANDLING.ldt

2.$grep lct XXCF_WH_HAT02_OPR_HANDLING.ldt

3.you get the lct name “afcpprog.lct” as result(which is control file for concurrent programs).

4.now give the following syntax(11i)

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct


XXCF_WH_HAT02_OPR_HANDLING.ldt

for R12 replace the corresponding patch for $FND_TOP/patch/import/ and execute..

FNDLOAD is a very useful tool provided by oracle which eases the hectic work in sysadmin and
it is very usefull when

you port developed large concurrent programs from dev to prod.

Concurrent Manager Internals

A basic understanding like what is a concurrent manager and its responsiblity is required before
reading further.

When submitting a concurrent request either Standard Manager or other Type of Managers
will process the request.

Concurrent Manager is controlled by three tables in database called


FND_CONCURRENT_REQUESTS,FND_CONCURRENT_QUEUES and

FND_CONCURRENT_PROGRAMS .

When we submit any request a plsql routine using CONCSUB binary is called which queries
the FND_CONCURRENT_REQUESTS and FND_CONCURRENT_PROGRAMS for
request and program definiton and the concurrent manager queries and maintains the status codes
in the table FND_CONCURRENT_QUEUES
,all the statuses of the requests like pending,submitted,running,on hold ,ready are maintained as
short codes in this table.

Concurrent Manager uses the CONCSUB utility using pl/sql routines for quering this table and if
it finds that the status of any submitted

program is READY (to run) then it executes the submitted request

For Submitting Concurrent Programs You can also use CONCSUB Utility from the command
line or shell prompt instead of front end forms.

an example is shown below

Active Users(request)

CONCSUB apps/[apps_pwd] SYSADMIN “System Administrator” SYSADMIN WAIT=N


CONCURRENT FND FNDSCURS

Here FNDSCURS is the Active Users executable in apps.

Note :- If for any reason the concurrent manager does not start its the fnd_concurrent_queues
where the control codes are messed up . download cmclean.sql from metalink to clean the
statuses and never truncate this table using sql plus straight away.

Golden rules for Oracle Apps 11i/R12 Performance Tuning

1.We should make sure Gather Shema Stats is running on periodical basis. It can be checked with
bde_last_analyzed.sql
It verifies stats by schema and index.
2.We should not gather statistics excessively for all the schemas such as nightly or weekly.

3. We must not gather statistics on permanent objects during peak intervals.

4. we must use FND_STATS or the Gather Schema and Gather Table Statistics Concurrent
Programs.
and we should NOT USE the analyze or dbms_stats command directly which results in sub-
optimal plans.

5.we must use the bde_chk_cbo.sql which is given in metalink to check the intialization
parameters so that its set to standards.

Then further if you face issues in performance then run AWRreport or statspack to analyze
further..
especially look for customized modules ‘SQL’. and programs.

for oracle seeded programs always contact oracle support.

Steps To Perform R12 Upgrade From 11i

The Steps are …

Step :- 1
Download and apply TUMS patch.
Download and apply patch 7705743

$ cd $AD_TOP/patch/115/sql

sqlplus / @adtums.sql

and Review the report.

Step :- 2. Convert to MultiOrg(If not enabled).

Step :- 3 . Convert to OATM(patch 7197489)(IF not already done so).

Step :- 4 .Drop event alert triggers in custom schemas


To drop all event alert database triggers in custom schemas,
run the alrdtrig.sql script,located in $ALR_TOP/admin/sql
After the Upgrade is finished You can enable it.

Step 5:- make sure you have sufficient tablespace…

Do the Product Specific Steps Now (See r12Upgrade guide for reference)..
Step 6:-Run Rapid Install(R12) and On the Select Upgrade Action screen,
select Create Upgrade File System(Application File System).

Step 7 :-Migrate or upgrade your database to at least Oracle 10g Release 2

Step 8 :- Apply AD 12.1.1 upgrade driver(patch 7461070).

Step 9 :- To bring your database to the full Oracle Applications Release 12.1.1 level, use
AutoPatch to run the (American English) unified driver (u6678700.drv). It is located
in $AU_TOP/patch/115/driver.
Run the driver on the administration server node on your Release 12.1.1 APPL_TOP
using the following commands:
$ adpatch options=nocopyportion,nogenerateportion

Troubleshooting Apps Framework/Login Issues

In most cases troubleshooting the Apps framework is very difficult and we will not have a clue
about the error.Examples are login issues like facing unexpected error or after login no homepage
displayed etc., We will not have a single clue about what the error is and even in Apache log
,Jserv Log nothing is written.In such cases the troubleshooting is very difficult.To get the actual
error code and troubleshoot further,
The only way is to enable the FND Debug and catch the error.
We need to set the following profiles for enabling FND debug

Logging FND: Debug Log Enabled — Enables/Disables Logging —values—No Yes


FND: Debug Log Filename —Specifies location of log file; (including the directory and
filename)
FND: Debug Log Level — Unexpected /error (This is the log level ,set it to error).

Once You set this and bounce the Apache,you can catch the error messages in the logfile and then
its very easy to
troubleshoot further.

Considerations for Upgrading Oracle Apps 11i/R12


Its a tendency of everyone that by following the Upgrade manual or by applying maintenance pack the
version is upgraded .but upto what level?. If you do upgrade using the upgrade manual and apply
maninentance pack then — only the overall release level is upgraded , for example if you upgrade 11i
from 11.5.9 to 11.5.10.2 using mainentance pack then only techstack and AOL components are upgraded .
To Bring the Individual Products upto the latest level ,we also need to apply the Individual Family Packs.

How to Apply a patch in between patch in oracle apps(Interim patch)

In certain scenarios you will be in a situation that you have pause the existing adpatching
and apply a patch in between.This is little bit tricky but still there is way to do that.but utmost
care
has to be taken while doing this.

before that let us understand how adpatch works.

adpatch reads the .drv(driver) file in the patch and does the actions accordingly.It creates two
Internal tables
in APPLSYS account called AD_DEFERRED_JOBS and FND_INSTALL_PROCESSES for
controlling adworkers,
the workers statuses are controlled in these tables.
Also the Actions of the adpatch are stored in .rf9 file format in $APPL_TOP/admin/
$TWO_TASK/restart directory..
when ever an adpatch is restarted from a failed session,it looks in to this folder to do
the restart work from where it has failed!.

Coming to the Actual procedure how to apply an interim ad patch do the following procedures.

1. Login adctrl and choose the option (tell the manager that a worker failed its job) — to stop
the existing patching…

2.login to APPLSYS and create backup of the two tables 1.AD_DEFERRED_JOBS ,


2.FND_INSTALL_PROCESSES

3. take a backup of the restart folder(or directory) under $APPL_TOP/admin/$TWO_TASK/

4.Apply the Interim(Intermediate ) patch successfully ,when asked for to continue


with failed session in adpatch say No and to the next question choose Yes
(so that you will erase the failed session and start a fresh patching).

5.After finishing the Intermediate patch ,restore the tables AD_DEFERRED_JOBS and
FND_INSTALL_PROCESS and the restart directory under $APPL_TOP/admin/$TWO_TASK.

6.login to adctrl and instruct the manager to restart the jobs.

7.Return to the original patch directory and invoke adpatch and now it will
ask “whether to continue with failed session”.
You have to give “Yes” and proceed with the original patching…

You May face this kind of issues while Upgrading the Oracle Apps (applying maintenance pack).

Script to find and kill runaway processes (concurrent requests) after termination

This script is useful for finding the SID and serial number for a specific 11i/R12 concurrent
request that has been terminated in the applications, but has not been cleaned up by PMON.
Sometimes in 11i, when a long-running concurrent request is terminated, it will still be active in
the database for long periods taking up resources. With this script, you can find the SID, serial
number and server PID for a terminated concurrent request so that the process can be killed at the
database and OS level. The input parameter for this script is the terminated concurrent request ID.

After running this script you can then do an “alter system kill session” and a “kill-9″ using the
server pid to stop the processing faster.
This script has been tested on 8.1.7.4, and on 11.5.1 through 11.5.9.

rem fndreqidx.sql
rem
SET LINESIZE 132
rem
TTITLE ‘Deleted Concurrent Manager Requests’
rem
COL user_concurrent_queue_name FORMAT a15 HEADING ‘QUEUE NAME’ trunc
COL request_id FORMAT 9999999 HEADING ‘REQUEST|ID’
COL phase_code FORMAT a1 HEADING ‘P’
COL status_code FORMAT a1 HEADING ‘S’
COL actual_start_date FORMAT a11 HEADING ‘START DATE’
COL user_name FORMAT a15 HEADING ‘USER|NAME’
COL spid FORMAT a6 HEADING ‘SERVER|PID’ headsep ‘|’
COL program FORMAT a40 HEADING ‘PROGRAM’
COL duration FORMAT a10 HEADING ‘DURATION’
COL sidserial FORMAT a11 HEADING ‘SID,SERIAL#’

SELECT qt.user_concurrent_queue_name
, fcr.Request_Id Request_id
, fu.User_name
, p.spid
, s.sid ||’, ‘|| s.serial# SIDSERIAL
, substr( Fcpv.Concurrent_Program_Name ||’ – ‘|| Fcpv.User_Concurrent_Program_Name, 1,46)
Program
, to_char( fcr.actual_start_date, ‘mm/dd hh24:mi’ ) actual_start_date
, phase_code, status_code
, to_char( trunc(sysdate) + ( sysdate – fcr.actual_start_date )
, ‘hh24:mi:ss’ ) duration
FROM apps.Fnd_Concurrent_Queues Fcq
, apps.fnd_concurrent_queues_tl qt
, apps.Fnd_Concurrent_Requests Fcr
, apps.Fnd_Concurrent_Programs Fcp
, apps.Fnd_User Fu
, apps.Fnd_Concurrent_Processes Fpro
, v$session s
, v$process p
, apps.Fnd_Concurrent_Programs_Vl Fcpv
WHERE phase_code = ‘C’
AND status_Code = ‘X’
AND s.paddr = p.addr
AND fcr.requested_by = user_id
AND fcq.application_id = qt.application_id
AND fcq.concurrent_queue_id = qt.concurrent_queue_id
AND userenv(‘lang’) = qt.language
AND fcr.os_process_id = s.process
AND fcr.Controlling_Manager = Concurrent_Process_Id
AND (fcq.concurrent_queue_id = fpro.concurrent_queue_id
AND fcq.application_id = fpro.queue_application_id )
AND (fcr.concurrent_program_id = fcp.concurrent_program_id
AND fcr.program_application_id = fcp.application_id )
AND (fcr.concurrent_program_id = fcpv.concurrent_program_id
AND fcr.program_application_id = fcpv.application_id )
ORDER BY fcr.actual_start_date;

Datablock corruption after Cloning Oracle Applications Using Rapid Clone…

If You follow hotbackup strategy for Oracle E-business Suite then You Sometimes land with the
following problem
after cloning the instance..The root cause of which very difficult to Find.

You will land with the following Error while opening forms :–

ORA-01578: ORACLE data block corrupted (file # 96, block # 5409)


ORA-01110: data file 96: ‘/u02/oradata/a_txn_data05.dbf’
ORA-26040: Data block was loaded using the NOLOGGING option

The error indicates that This error is very serious and database is corrupted but it is NOT as it
says..

I have also faced the same issue and after digging out my mind I found the following

1.When the hotbackup was taken that time one or more of the WorkFlow(WF) Tables were in
NOLOGGING MODE..
and Found that the Concurrent Program “Synch WF LOCAL Tables” was doing this
NOLOGGING to enable direct path LOAD…

I have used the following solutions to Solve this particular issue.

a. After Cloning from a Hotbackup


run the concurrent Program “Synch WF LOCAL Tables” which will solve the issue.

b. Do not run the hotbackup while this particular concurrent program is running.
What I would Advise is to follow Cold backup restore for Cloning(where ever possible). This
will be my Best Solution to finish
the clone without issues.

what is dbc file in Apps and its Importance

dbc (database connector) file is the key configuration file in oracle applications(E-business suite)
Its Location is $FND_TOP/secure..

It is the main configuration file using which applications connect to the database.
It has the following information also i have given the equivalent parameter in the xml(context)
file.

Context File Parameter Parameter in the DBC File Description


———————————————————————————————————————
————-

s_guest_user GUEST_USER_PWD Guest Account


s_guest_pass

s_dbhost DB_HOST Database hostname

s_dbport DB_PORT Port number for database listener

s_dbSid DB_NAME Database name

s_fnd_jdbc_buffermin FND_JDBC_BUFFER_MIN Minimum Number of


connections the pool maintains

s_fnd_jdbc_buffermax FND_JDBC_BUFFER_MAX Maximum number of connections


the pool allows

s_fnd_jdbc_buffer_decay_interval FND_JDBC_BUFFER_DECAY_INTERVAL Specifies how


often the
connection pool checks buffer size

s_fnd_jdbc_buffer_decay_size FND_JDBC_BUFFER_DECAY_SIZE Maximum number of


connections
removed during a cycle.

Key Differences Between Release 11i and R12

The Main Difference Lies in the Technology Stack between 11i and R12
In 11i You have 9i or 10g RDBMS Oracle Home and 8.0.6 for PL/SQL libraries and forms 6i and
9iAS

In R12 You have 10g RDBMS Oracle Home and 10.1.2 Oracle Home for forms/reports and
libraries and 10.1.3 Oracle Home for Application Server…

The reports server has been removed in R12 and it runs as a spawned process called rwrun which
is spawned by conc manager.

INST_TOP has been introduced. All the log files and adminisrative scripts you can find in this
TOP…

if you delete the Apache _pages(cache) it will not be generated automatically.You need to
regenerate them…

OPMN is introduced to start the services(oracle Process manager).

Jserv component is removed and it is replaced in R12 by OC4J

modpls component of Apache is removed .you have to see the alternate for custom developed
programs which will be using this

where is the xml file in R12


In older version i.e 11i and old normally xml file alias context file will be under $APPL_TOP/admin but
dont be surprised to you dont find it in R12 in the Same place.Its safely there in $INST_TOP/appl/admin

More About Oracle Apps Middle Tier

Lets see the purpose of the middle tier components

1.Web Server

This is Apache server which brings you the webpages of the application.

2.Forms Server

Here You should know that 11i consists of three oracle home’s

a)Database Oracle Home. b) 8.0.6 Oracle Home c) IAS Oracle Home

so the forms server is part of IAS Oracle Home.–which brings you the forms of 11i–E-business
suite.
3. Reports Server.

This is also a part of IAS Oracle Home– used for running reports against the 11i database.

4.Concurrent Processing Server.

Used for processing the concurrent requests.

5. Admin Server.

This is used for admin purpose.

6.Discoverer Server.

This is optional.This brings you the discoverer integrated with 11i.

Various Startup Scripts in Oracle Applications

In this post I would like to write about the various scripts available for starting and shutting
down the apps services.

Normally 11i will be installed with two OS accounts . one for oracle db and one for oracle apps
tier. normally –applmgr(or) appl sid .

after logging into apps user you should source the APPSORA.env env file under APPL_TOP.
This sets your environment. you can confirm whether it has been setup by echoing the
TWO_TASK. like– $echo $TWO_TASK which will show you the SID.

now you are ready to execute scripts.

Generally the scripts are under $COMMON_TOP/admin/scripts.

here you will find the following scripts.

adstrtal.sh — used for starting the apps tier..

usage— adstrtal.sh apps/apps password.

adstpall.sh — used for stopping the apps tier..

usage—adstpall.sh apps/apps password.

adapcctl.sh start/stop — used for starting and stopping the apache/web server.

adalnctl.sh start/stop — used to start stop the apps listener.


adfrmctl.sh start/stop –used to start stop forms server.

adcmctl.sh start apps/apps

adcmctl.sh stop apps/apps —-used for starting and stopping the concurrent managers.

addisctl.sh start/stop — used for starting stopping the discoverer.

any comments/questions kindly post.

Oracle Applications Architecture

Architecture of 11i Oracle E-Business Suite.


———————————————-

11i Architecture is a 3 Tier Architecture.

1.DataBase Tier.
2.Middle Tier.
3.Client or Desktop Tier.

DataBase tier consits of the database to which 11i stores the data. this can be separate node or on
the same node where middle tier is.

Middle Tier consists of the following components.

1.Web Server.
2.Forms Server.
3.Reports Server
4.Concurrent Processing Server.
5.Admin Server
6.Discoverer Server.

This tier can be distributed(load balanced) into multiple nodes.

Desktop Tier –which is the client pc used for accessing the applications. The components include
a web browser ,Oracle Jinitiator.

Any questions or comments kindly post in this blog.

–Vivek

Further I will discuss about the various TOP(physical structure)’s of the Oracle 11i(E-Business
Suite).

They are.
DataBase Oracle Home.

DATA_TOP (where oracle dbf’s are stored).

APPL_TOP(Application’s Top) where all the relevant modules files are stored(e.g
forms,reports,pl/sql stored procedures etc of a GL (General Ledger Module).

COMMON_TOP— various admin scripts and other necessary files are stored.

OA_HTML—where the .jsp files are stored.

IAS_ORACLE_HOME—Apache,Jserver components are stored here.

806_ORACLE_HOME— The necessary pl/sql libraries are stored here.

JAVA_TOP and JDK_HOME.

How to restore apps password if corrupted

Reset apps password in Oracle Applications if corrupted


—————————————————————————–

Passwords in Applications are encrypted both at the database level AND at the

Applications level. The Applications passwords are encrypted using the APPLSYS

password as a seed; therefore, if the APPLSYS password changes, all the

encryptions will change. Note: By APPLSYS, we refer specifically to the actual

owner of your foundation tables, i.e. the value of the FNDNAM environment

variable or logical.

Below are three select statements which will help you reset the passwords in

your database. Specifically, you will be returning your APPLSYS and APPS

passwords to APPS, and the SYSADMIN user’s password to WELCOME.

Following these steps will cause ALL Applications users except for SYSADMIN to

become INVALID until they are re-registered using the Register Oracle ID form.

Therefore, you should only follow these steps in case of desperation, and when
all other means of obtaining passwords have been exhausted. NOTE: You should

make a backup copy of both FND_USER and FND_ORACLE_USERID before you make any

changes to these tables. To backup these tables use the following syntax:

SQL> create table fnd_user_bak as (select * from fnd_user);

SQL> create table fnd_oracle_userid_bak as (select * from fnd_oracle_userid);

Then, execute the following select statements:

SQL> select encrypted_oracle_password

from fnd_oracle_userid

where oracle_username IN (‘APPS’, ‘APPLSYS’);

SQL> select encrypted_foundation_password, encrypted_user_password

from fnd_user

where user_name = ‘SYSADMIN’;

SQL> select encrypted_oracle_password

from fnd_oracle_userid

where oracle_username = ‘APPLSYSPUB’;

The first select statement shows the current encrypted ORACLE password for

APPLSYS and APPS. Update these rows in your FND_ORACLE_USERID table with

the following update command:

update FND_ORACLE_USERID

set ENCRYPTED_ORACLE_PASSWORD =

‘C4E9B59142D7A3F5C2BB0DA9C215A5C9A623EDB3473AC895876A253C0093F4E0′

where ORACLE_USERNAME in (‘APPS’, ‘APPLSYS’);

commit;
The second select statement shows the current encrypted foundation password in

the FND_USER table (which is based on the APPLSYS password), and the encrypted

user password for the SYSADMIN user. Update the necessary rows in your FND_USER

table to reflect the correct values with this command:

update FND_USER

set ENCRYPTED_FOUNDATION_PASSWORD =

’2DF3E509EB6A33F9607959C0976E25D997166FAB694ACDDAE466414791A44411′,

ENCRYPTED_USER_PASSWORD=

‘D2FCA9810D86BCA9BE944D3E2E7A4A9E6CDF89AAD633179B701774083F907C13′

where USER_NAME=’SYSADMIN’;

commit;

Finally, the third statement gives the ORACLE password for the APPLSYSPUB

account (specifically, the username specified by the GWYUID environment

variable or logical). It is rarely necessary to change this — but in this

case it is will be. Update your FND_ORACLE_USERID table with this command:

update FND_ORACLE_USERID

set ENCRYPTED_ORACLE_PASSWORD =

‘D5ECA7C25E91A5C9D7D2E6C7287E73BEFB6DE76691E6CCBAD1426F611452D241′

where ORACLE_USERNAME = (‘APPLSYSPUB’);

commit;

Log into SQL*Plus as SYSTEM and change the sqlplus passwords for these IDs

using the following commands:

ALTER USER apps IDENTIFIED BY apps;


ALTER USER applsys IDENTIFIED BY apps;

ALTER USER applsyspub IDENTIFIED BY pub;

Cloning Oracle Applications Using Rapid clone

Introduction

Cloning Oracle Applications 11i /12 instances can be a difficult ones.Clients are constantly
asking for refreshes With the advent of Oracle apps , meeting cloning schedules can be
challenging to say the least. The good news is that when you are from Oracle Applications
version 11.5.8, we can use an easy method (called Rapid Clone)

It is advisable to read Oracle’s Metalink note 230672.1, which details how to set up and run
Rapid Clone, and note 165195.1, which outlines the use of AutoConfig. Of course, since we live
in such rapidly changing environments, it is strongly recommended that you double check patch
numbers and ensure that you have all prerequisites for your particular installation before
applying any patches.

The Basic Steps for Cloning

After installing the Rapid Clone and AutoConfig patches, you are ready to clone an instance.
There are ten basic steps involved. I have outlined them below:

Run system configuration on the Application tier:


$COMMON_TOP/admin/scripts/adautocfg.sh
Use the APPS password when prompted.

Run system configuration on the database tier:


$ORACLE_HOME/appsutil/scripts/adautocfg.sh
Use the APPS password when prompted.

Copy AutoConfig to the RDBMS ORACLE_HOME:


Apply patch 2952369 to acquire adchkcfg utility.
Create appsutil.zip file by: perl /bin/admkappsutil.pl.
Copy appsutil.zip file to the
unzip -o appsutil.zip

Generate the database context file:


cd $ORACLE_HOME/appsutil/bin
adbldxml.sh tier=database appsuser= appspasswd=
Output log is written to: $ORACLE_HOME/appsuti/out//cfgcheck.txt

Generate and apply AutoConfig configuration file:


cd $ORACLE_HOME/appsutil/bin adconfig.sh contextfile= appspass=
Prepare for source database clone:(for R11i and R12)
cd $ORACLE_HOME/appsutil/scripts/

./perl adpreclone.pl dbTier

Prepare for source application clone:


cd $COMMON_TOP/admin/scripts/

for R12 cloning cd $INST_TOP/admin/scripts


./perl adpreclone.pl appsTier

Copy the application tier file system:


Logon to the source system as APPLMGR and shut down the server processes.
Copy the following application directories from the source to the target node/file system:

Shut down the source database and copy the RDBMS ORACLE_HOME and DATA_TOP
it to the target node/file system.
Restart the source database and source application server processes.

Configure the target system database sever:


cd /appsutil/clone/bin
./perl adcfgclone.pl dbTier

answer the prompts

the prompts will be like enter the number of DATA TOP, PATH to the
new ORACLE_HOME,DATA_TOP, hostname,dbname ,port etc..,

Configure the target system application tier: for R11i/R12


cd $COMMON_TOP/clone/bin

./perl adcfgclone.pl appsTier

answer the prompts

prompts will be like


enter the value for — appl_top,common_top,IAS_ORACLE_HOME,
8.0.6 ORACLE_HOME, db name ,db host ,port etc(for the target system to replace ).

this will take some time to finish…

Cloning an Oracle Applications environment is complicated, but Rapid Clone makes it a lot
easier. The steps provided here are intended to give you an overview of the process. Be sure to
read the Metalink notes cited and other available documentation for additional information.
Register Custom Top in Oracle Applications

Step 1:
Make the directory structure for your custom application files
mkdir xxsuff
mkdir xxsuff/11.5.0
mkdir xxsuff/11.5.0/admin
mkdir xxsuff/11.5.0/admin/sql
mkdir xxsuff/11.5.0/admin/odf
mkdir xxsuff/11.5.0/sql
mkdir xxsuff/11.5.0/bin
mkdir xxsuff/11.5.0/reports
mkdir xxsuff/11.5.0/reports/US
mkdir xxsuff/11.5.0/forms
mkdir xxsuff/11.5.0/forms/US
mkdir xxsuff/11.5.0/$APPLLIB
mkdir xxsuff/11.5.0/out
mkdir xxsuff/11.5.0/log

Step:2
Add the Path of the Custom Top in adovars.env.
/sufdev/applmgr/1159/admin/adovars.env
XXSUFF_TOP=/sufdev/applmgr/1159/xxsuff/11.5.0
export XXSUFF_TOP
Step 3: Login into SQL as System User

sql> create tablespace xxsuff datafile


‘/sufdev/oradata/data03/xxsuff01.dbf’ size 500m;

Step 4:

sql> create user xxsuff identified by xxsuff


default tablespace xxsuff
temporary tablespace temp
quota unlimited on xxsuff
quota unlimited on temp;
Step 5:
sql> grant connect, resource to xxsuff;

Applications:
Step 6:
Register your Oracle Schema.
Login to Applications with System Administrator responsibility
Navigate to Application–>Register
Application = XXSUFF Custom
Short Name = XXSUFF
Basepath = XXSUFF_TOP
Description = XXSUFF Custom Application
Step 7:
Register Oracle User
Naviate to Security–>Oracle–>Register
Database User Name = XXSUFF
Password = XXSUFF
Privilege = Enabled
Install Group =0
Description = XXSUFF Custom Application User
Step 8:
Add Application to a Data Group
Navigate to Security–>Oracle–>DataGroup
Data Group = XXSUFFGroup
Description = XXSUFF Custom Data Group
Click on “Copy Applications from” and pick Standard data Group, then add the following entry
Application = XXSUFF Custom
Oracle ID = APPS
Description = XXSUFF Custom Application
Step 9:
Create custom request group
This will act as a placeholder for any custom reports we wish to make available for the Custom
Responsibility
Navigate to Security–>responsbility–>Request
Group = XXSUFF Request Group
Application = XXSUFF Custom
Code = XXSUFF
Description = XXSUFF Custom Requests
We can define a request and add to the group
Step 10:
Create custom menu
This will act as a placeholder for any menu items we wish to make available for the Custom
Responsibility. Here two menus are created , one for Core Applications and one for Self Service.
Navigate to Application–>Menu
Menu = XXSUFF_CUSTOM_MENU
User Menu Name = XXSUFF Custom Application
Menu Type = <leave blank>
Description = XXSUFF Custom Application Menu
Seq = 100
Prompt = View Requests
Submenu = <leave blank>
Function = View All Concurrent Requests
Description = View Requests

Seq = 110
Prompt = Run Requests
Submenu = <leave blank>
Function = Requests: Submit
Description = Submit Requests

Menu = XXSUFF_CUSTOM_MENU_SSWA
User Menu Name = XXSUFF Custom Application SSWA
Menu Type = <leave blank>
Description = XXSUFF Custom Application Menu for SSWA

Step 11:
Create new responsibility.One for Core Applications and One for Self Service (SSWA)
Navigate to Security–>Responsibility–>Define
Responsibility Name = XXSUFF Custom
Application = XXSUFF Custom
Responsibility Key = XXSUFFCUSTOM
Description = XXSUFF Custom Responsibility
Available From = Oracle Applications
Data Group Name = XXSUFFGroup
Data Group Application = XXSUFF Custom
Menu = XXSUFF Custom Application
Request Group Name = XXSUFF Request Group

Responsibility Name = XXSUFF Custom SSWA


Application = XXSUFF Custom
Responsibility Key = XXSUFFCUSTOMSSWA
Description = XXSUFF Custom Responsibility SSWA
Available From = Oracle Self Service Web Applications
Data Group Name = XXSUFFGroup
Data Group Application = XXSUFF Custom
Menu = XXSUFF Custom Application SSWA
Request Group Name = XXSUFF Request Group

Step 12:
Add responsibility to user
Navigate to Security–>User–>Define
Add XXSUFF Custom responsibility to users as required.
We have added XXSUFF custom responsibility to System Administrator.

As Oracle Apps DBA / Sysadmin you Apply patches & restart servives or make some
configuration changes in applications

11i before releasing Instance to Application Users you wish to check if all components in E-
Business Suite 11i are working fine. Here is list of components you should check apart from
your custom services.
 1. Check Web Server is Up : Check in browser http://hostname.domainname:port where
hostname.domain name is Machine Name on which Web Server(OHS) is running. If you are
using load balancer or Proxy Server in front of Web Server it will be loadbalancer / Proxy Server
Name. Port is port on which Web Server is Listening. It is defined in
$IAS_ORACLE_HOME /Apache /Apache /conf /httpd.conf , To find more about WebServer &
its parameters Click Here . If you can't access this check error_log at
$IAS_ORACLE_HOME /Apache /Apache/ logs
 2. Check Jserv is Up : Check if you can access OAM (Oracle Application Manager) page.
http://hostname.domainname:port_number/servlets/weboam/oam/oamLogin If you can't access
login screen for OAM, check logs at
 3. Check mod_pls is working fine : http://hostname.domainname:port/pls/$SID so if you
installed vision instance with SID as VIS11I your SID here is VIS11II this sometime in
documents also called as TWO_TASK. You should see output from procedure
FND_WEB.PING . If not check that -
A) database

listener is Up
B) GUEST User is not end dated & password is correct.
C) dbc (database connect descriptor) file is corerct at $FND_TOP/secure
D) apps password is correct in wdbsvr.app at $IAS_ORACLE_HOME/Apache/modplsql/cfg
 4. Login to Application : Login to application with Application User to confirm login is
working fine , if not check mod_pls for any issues.
 5. Check Form Server is working : Click on any Core Responsibility like "System
Administrator", If you are facing any problem opening form Applet
A) Check jinitiator is installed, if not do you have access to install jinitiator
B) Try clearing cache from jinitiator
C) Check forms server parameters are configured properly in appsweb_$CONTEXT_NAME.cfg

D) Check if form server listener is Up : netstat -an | grep form_server_port


 6. Check Concurrent Manager is Up & Running : Select "Administer Concurrent
Manager" & check if "Actual" & "Target" are same. If not check $SID_MM_DD.mgr at
$APPLCSF/$APPLLOG To know more about concurrent Manager Click Here
 7. Check Reports can display properly : Change "Active Users" reports output from "Text file" to
"PDF" from Define Concurrent Request Screen. Submit Active Users request & click on Output , check if
you can se report in PDF format. If you encounter error like REP-3000 Oracle Toolkit , issue is with
DISPLAY,

You might also like