Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 .
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.
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 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.
• The <dbname>DB directory is located on the database server machine, and contains
the ORACLE_HOME for the Oracle9i database.
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.
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).
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
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:
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. Can you apply patch without putting Applications 11i in Maintenance mode ?
Yes, use options=hotpatch as mentioned above with adpatch.
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. 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. 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. 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 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. 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. 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. 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. 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 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.
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. 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.
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. 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 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. 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. 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 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. 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.
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.
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 .
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
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: 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 else can you suggest to restrict the access to screens from external web tiers?
Answer: You may use URL filtering within Apache.
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: 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 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: 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 : 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: 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' ;
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 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 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 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.
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.
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
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 $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.
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 .
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
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)..
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.
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.
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
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
Provide the values required for creation of the new APPL_TOP Context file.
Do you want to preserve the Display set to sourcehost:0.0 (y/n) [y] ?:n
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
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
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
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
As an Apps DBA if you are given an ldt file and told to apply that in production then do the
following
you will get the lct name (which is used as config file to upload the ldt file)
3.you get the lct name “afcpprog.lct” as result(which is control file for concurrent programs).
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
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.
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
For Submitting Concurrent Programs You can also use CONCSUB Utility from the command
line or shell prompt instead of front end forms.
Active Users(request)
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.
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.
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.
Step :- 1
Download and apply TUMS patch.
Download and apply patch 7705743
$ cd $AD_TOP/patch/115/sql
sqlplus / @adtums.sql
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 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
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
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.
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.
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…
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.
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;
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 :–
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…
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.
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.
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…
modpls component of Apache is removed .you have to see the alternate for custom developed
programs which will be using this
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
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.
5. Admin Server.
6.Discoverer Server.
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.
adapcctl.sh start/stop — used for starting and stopping the apache/web server.
adcmctl.sh stop apps/apps —-used for starting and stopping the concurrent managers.
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.
1.Web Server.
2.Forms Server.
3.Reports Server
4.Concurrent Processing Server.
5.Admin Server
6.Discoverer Server.
Desktop Tier –which is the client pc used for accessing the applications. The components include
a web browser ,Oracle Jinitiator.
–Vivek
Further I will discuss about the various TOP(physical structure)’s of the Oracle 11i(E-Business
Suite).
They are.
DataBase Oracle Home.
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.
Passwords in Applications are encrypted both at the database level AND at the
Applications level. The Applications passwords are encrypted using the APPLSYS
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
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:
from fnd_oracle_userid
from fnd_user
from fnd_oracle_userid
The first select statement shows the current encrypted ORACLE password for
APPLSYS and APPS. Update these rows in your FND_ORACLE_USERID table with
update FND_ORACLE_USERID
set ENCRYPTED_ORACLE_PASSWORD =
‘C4E9B59142D7A3F5C2BB0DA9C215A5C9A623EDB3473AC895876A253C0093F4E0′
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
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
case it is will be. Update your FND_ORACLE_USERID table with this command:
update FND_ORACLE_USERID
set ENCRYPTED_ORACLE_PASSWORD =
‘D5ECA7C25E91A5C9D7D2E6C7287E73BEFB6DE76691E6CCBAD1426F611452D241′
commit;
Log into SQL*Plus as SYSTEM and change the sqlplus passwords for these IDs
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.
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:
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.
the prompts will be like enter the number of DATA TOP, PATH to the
new ORACLE_HOME,DATA_TOP, hostname,dbname ,port etc..,
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
Step 4:
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
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