Oracle Apps DBA Interview Questions – V

Question:  What is the pre-req for applying a rdbms patch?

Answer :  OraInventory should be set in file oraInst.loc @/var/opt/oracle or /etc

Question:  What is OraInventroy?

Answer :  The oraInventory is the location for the OUI (Oracle Universal Installer)’s bookkeeping. The orainventory stores information about: All Oracle software products installed in all ORACLE_HOMES on a machine Other non-Oracle products, such as the Java Runtime Environment (JRE).  In a 11i Application system the RDBMS and iAS ORACLE_HOMEs are registered in the oraInventory. The 806 ORACLE_HOME, which is not managed through OUI, is not.

Question:  What are different types of inventories?

Answer :  The Global orainventory (or Central inventory) The Local inventory (or Home inventory)

Question:  What is Global orainventory?

Answer :  The Global oraInventory is the part of the XML inventory that contains the high level list of all oracle products installed on a machine. There should therefore be only one per machine. Its location is defined by the content of oraInst.loc.The Global OraInventory records the physical location of Oracle products installed on the machine, such as ORACLE_HOMES (RDBMS and IAS) or JRE. It does not have any information about the detail of patches applied to each ORACLE_HOMEs.The Global OraInventory gets updated every time you install or de-install an ORACLE_HOME on the machine, be it through OUI Installer, Rapid Install, or Rapid Clone.

Note:  If you need to delete an ORACLE_HOME, you should always do it through the OUI de-installer in order to keep the Global OraInventory synchronized.

Question:  What is local Orainventory?

Answer :  There is one Local OraInventory per ORACLE_HOME. It is physically located inside the ORACLE_HOME at $ORACLE_HOME/inventory and contains the detail of the patch level for that ORACLE_HOME.The Local OraInventory gets updated whenever a patch is applied to the ORACLE_HOME, using OUI.

Question:  What is rapid clone?

Answer :  Rapid Clone is the new cloning utility introduced in Release 11.5.8. Rapid Clone leverages the new installation and configuration technology utilized by Rapid Install

Question:  How do I determine if my system is rapid clone enabled?

Answer :  First, verify that your system is AutoConfig enabled. Then, verify that you have applied the latest Rapid Clone patch.

Question:  Explain the cloning process?

Answer :

  • Run adpreclone as applmgr and oracle user on source Perl dbTier as oracle user Perl appsTier as applmgr user
  • Take the cold/hotbackup of source database
  • Copy the five directories appl,comn,ora , db,data to target
  • Rename the directories, and change the permission
  • Set the inventory in oraInst.loc
  • Run perl dbTier as oracle user,if the backup type is cold
  •  If the backup type is hotbackup then Perl dbTechStack. Create the control file on target from the control script trace file from source Recover the database Alter database open resetlogs
  • Run autoconfig with the ports changed as per requirement in xml.
  • Run perl appsTier as applmgr
  • Run autoconfig with the ports changed as per requirement in xml.

Question:  What is the location of for oracle user?

Answer :  RDBMS_ORACLE_HOME/appsutil/scripts/

Question:  What is the location of for applmgr user?

Answer :  $COMMON_TOP/admin/scripts/

Question:  What is the location of for oracle user?

Answer :  $RDBMS_ORACLE_HOME/appsutil/clone/bin

Question:  What is the location of for applmgr user?

Answer :  $COMMON_TOP/clone/bin

Question:  What is statspack?

Answer :  Statspack is a database utility to gather database and session level performance information.

Question:  How to install statspack?

Answer :  Run the script spcreate.sql @RDBMS_ORACLE_HOME/rdbms/admin

Note:  More details on statspack refer metalink noteid: 149113.1

Question:  How to enable trace at database level?

Answer :  set init.ora parameter sql_trace

Question:  How to enable trace for a session?

Answer :

  • Alter system set sql_trace=true;
  • Execute the sql query
  • Alter system set sql_trace=false;
  • This will create a trace file at
  • $RDBMS_ORACLE_HOME/admin/contextname/udump with the spid of the current sql session.

Question:  How to enable trace for other session?

Answer :  exec sys.dbms_system.set_sql_trace_in_session(sid,serial#,true/false)

Example:  To enable trace for sql session with sid 8SQL> exec sys.dbms_system.set_sql_trace_in_session(8,121,true);

PL/SQL procedure successfully completed.

To disable trace

SQL> exec sys.dbms_system.set_sql_trace_in_session(8,121,false);

Question:  What is the location of inint.ora ?

Answer :  $RDBMS_ORACLE_HOME/dbs

Question:  What is that trace files contains and the utiliy used to read them?

Answer :  Trace file contains the detail diagnostics of a sql statement like explain plan, physical reads, logical reads, buffer gets etc. Tkprof utility is used to convert trace file into readable format.

Question:  What is the syntax for tkprof?

Answer :  tkprof explain=apps/ sys=no

Question:  How do we find adpreclone is run in source or not ?

Answer :  If clone directory exists under RDBMS_ORACLE_HOME/appsutil for oracle user and $COMMON_TOP for applmgr user.

Question:  How to find trace file for a given concurrent request id?

Answer :  Go to $RDBMS_ORACLE_HOME/admin//udump

grep “ “ *

Question:  What is a database link? How to create it?

Answer :  If we want to access objects of another database from this database then we need a database link from this database to the other.

  • Login as oracle user
  • sqlplus “/as sysdba”
  • create database link connect to identified by using ”;

Example:  SQL> create database link TEST1_TO_TEST2 connect to apps identified by apps using ‘TEST2’;

Database link created.

SQL> select name from v$database@ TEST1_TO_TEST2;




SQL>select db_link from dba_db_links;

Add destination database tns entry in tnsnames.ora

Question:  How many clonings u have done?

Answer :  If u r very much confident on cloning processes then say 5 to 8 otherwise just 2 or 3.

Question:  What u know abt RMAN?

Answer :  If u r good at RMAN then say yes, otherwise say we are not using RMAN for backup/recovery , why because we are using netapp snap technology for backups.

Question:  What is netapp?

Answer :  Netapp is a storage technology.

Question:  What is formserver url?

Answer :  http://hostname.domain:/dev60cgi/f60cgi

Question:  What is jinitiator?

Answer :  Oracle jinitiator is the one which provide the required jvm to run forms interface/applet. When we access forms applet first time , oracle jinitiator will be installed automatically.

Question:  What is discoverer server?

Answer :  Discoverer server is reporting tools which allows novoice user to use oracle application reports. Discoverer will come along with oracle applications when installed.

Question:  What is discoverer viewer url?

Answer :  /discoverer4i/viewer152. What is discoverer plus url?

Aoljtest is a web based utility to test the availability of the different components of oracle applications like jserv,modplsql,jsp,forms etc

URL: /OA_HTML/jsp/fnd/aoljtest.jsp

Question:  What is adsplicer?

Answer :  Adsplicer is a uitility used to register off cycle products.

Question:  What is licence manager?

Answer :  Licence manager(adlicmgr) utility is used to licence/unlicence , enable new languages,enbale country specific functionality.

Question:  What is tnsping?

Answer :  tnsping is command used to check the connectivity to the database server node from other nodes.

Example: tnsping

Note: Tns entry should be there in tnsnames.ora for the database we are trying to work this command.

Question:  How to compile a form using f60gen?

Answer :

f60gen module=/TEST/testappl/au/11.5.0/forms/F/ARXTWMAI.fmb userid=APPS/APPS output_file=/TEST/testappl/ar/11.5.0/forms/F/ARXTWMAI.fmx module_type=form batch=yes compile_all=special

Question:  What is APPLPTMP environment variable?

Answer :  This is the temporary file location for the pl/sql temp files. If this variable was not set then the concurrent programs may errored out.

Question:  What is mean by enabling maintanance mode?

Answer :  Maintanance mode is the adadmin option introduced from AD.I. When maintanance mode is enabled user may able to login to application but they only get profile option in the frontend navigation menu.

Question:  Is that necessary to enable maintanance mode while applying a patch?

Answer :  We can even apply a patch without enabling maintanance mode with the following option

Adpatch options=hotpatch

Question:  How to find out oracle application framework version?

Answer :

  • Through aoljtest
  • cd $COMMON_TOP/html/
  • adident Header OA.jsp

Question:  How to find out what are the rdbms patches applied to an oracle home?

Answer :

  •  opatch lsinventory
  • $RDBMS_ORACLE_HOME/.patch_storage directory contains the directories with the rdbms patch number, which are applied to this oracle home.

Question:  Is that necessary to shutdown database while applying a database patch?

Answer :  Yes.

Question:  What is the command line utility to submit a concurrent request?

Answer :  CONSUB

Question:  What is the significance of utl_file_dir parameter in init.ora file?

Answer :  The value of this parameter is the group of directories to which u r database can write, means u r database packages have permission to write to flat files in these directories.

Question:  How you will find out discoverer version?

Answer :  cd $806_ORACLE_HOME/discwb4/lib strings libd* grep ‘Version:’

Question:  While applying a rdbms patch using opatch you are getting the error, unable to read inventory/inventory is corrupted/ORACLE_HOME is not not registered, what you will do, and how you will apply the patch?

Answer :  We will check the inventory directory permission, try to apply the patch after giving 777 permissions to that inventory directory. If still it won’t work we will apply patch with the following command:

  • Opatch apply no_inventory

Question:  Have you applied rdbms patches and for what?

Answer :  We got ORA-7445 error in alert log, for which oracle recommended to apply a rdbms patch.

Question:  What are the patch errors , you have encountered?

Answer :

  • Patch fails with the error, unable to generate perticular form, do u want to continue. We continue patching by saying “yes”, then we manually regenarate the form using f60gen utility.
  • Unable to generate jar files under JAVA_TOP AutoPatch error: Failed to generate the product JAR files Solution:Run adjkey -initialize ———–to creat identitydb.obj file which will beused by adjava to sign jar files.

Question:  What is adjkey? What files it will create?

Answer :  adjkey is an adutility which will create digital signature, which will be used to sign all t” admin? mailto:adsign.txt@APPL_TOP>adsign.txt@APPL_TOP/adminappltop.cer@APPL_TOP/adminidentitydb.obj@applmgr home

Question:  What are the post installation task?

Answer :  Running adjkey –initialize and then runnning adadmin to regerate jar files.

Question:  What are the clone errors, you have encountered?

Answer:  Error:

RC-50013: Fatal: Failed to instantiate driver/u01/fms2c/appfms2c/fms2cora/iAS/appsutil/driver/instconf.drvCauseThe source instance has files that adpreclone flags as ‘autoconfigable’ but in reality they are not. So adds these files into the instconf.drv. Then when is run on target it looks for the template file to instantiate for these files and since there isn’t a template file fails. SolutionModify the target’s instconf.drv and remove the offending lines. Then rerun

Question:  What are the real time problems you have encountered and how you trouble shooted that?

Answer :

  • Concurrent Program is erroing out with snapshot too old error. To resolve this we have added space to temp tablespace.
  • Concurrent Program is erroing out with unable to extent a perticular tablespace by so and so extents. To resolve this we have added on more data file to that tablespace.
  • When we are trying to start apache with script after a autoconfig run, its saying that “node id is not matching with the application server id”. To resolve this we have updated the server id column in fnd_nodes table with the server id value in dbc file.

Question:  How you will find workflow version?

Answer :  Run wfver.sql@FND_TOP/sql script as apps user

Question:  When forms are running in servlet mode then the environment variables required for forms must be defined in what file and its location?

Answer :  formsservlet.ini@$APACHE_TOP/Jserv/etc.

Question:  How to find out which patch driver is applied(like c,d,g or u)?

Answer :  query ad_patch_drivers.

Question:  How to find out whether a language patch is applied for a perticular patch?

Answer :  Query ad_patch_driver_langs.

Question:  How to validate that sysadmin password is correct or not from backend?

Answer :  select fnd_web_sec.validate_login(‘SYSADMIN’,’Qwert8765′) from dual;

Question:  How to compile jsp’s(other than from adadmin)?

Answer :  Force compilation of all jsps using the following command –compile –flush

Question:  How to rotate logs for apache logs?

Answer :  Using rotatelogs executable in httpd.conf file. Use Errorlog for error_log file rotation. Transferlog for other log files.

Question:  Other way of checking whether MRC is enabled or not besides using adadmin?

Answer:  select multi_currency_flag from fnd_product_groups;

Question:  How to compile rdf?

Answer :  Either using adadmin or rwcon60

Question:  How to change file/directory owner in linux/solaris?

Answer :  chown – R :

Example: chown – R applmgr:dba testappl

Question:  How to change the permission of file/directory in linux/solaris?

Answer :  chmod –R

Example: chmod –R 755 testappl

Question:  What are the files which contain apps password?

Answer :

  • CGIcmd.dat@806_ORACLE_HOME/reports60/server
  • wfmail.cfg@FND_TOP/resource – optional
  • CatalogLoader.conf@OA_JAVA – optional
  • CatalogLoader.xml@OA_HTML – optional

Question:  What is the script to find out ICM status?

Answer :  afimchk.sql@FND_TOP/sql

Question:  What is the script to list the concurrent request status?

Answer :  afrqrun.sql@FND_TOP/sql

Question:  What is the script that Lists managers that currently are running a request?

Answer :  afcmrrq.sql@FND_TOP/sql

Question:  How can I determine whether a template is customizable or non-customizable?

Answer :  If a keyword “LOCK” is present at the end of the file entry in the respective driver, then it is a non-customizable template. If the “LOCK” keyword is not seen, then that template can be customized.

Question:  How to find out JDBC version :

Answer :  In the middle tier, edit the file located in the IAS_ORACLE_HOME/Apache/Jserv/etc directory- Locate the wrapper.classpath that is pointing to the jdbc zip file/opt/oracle/apps/$TWO_TASK/comn/java/

Question:  How to findout XML Parser Version

Answer :  SQL> select WF_EVENT_XML.XMLVersion() XML_VERSION from sys.dual;

Question:  How to find out WorkFlow Version

Answer :  SQL> select TEXT Version from WF_RESOURCES where TYPE = ‘WFTKN’ and NAME = ‘WF_VERSION’;

Question:  How to find a file version in Application DB:

Answer:  select v.version,v.CREATION_DATE,c.CREATION_DATE from AD_FILES c,AD_FILE_VERSIONS v where c.FILENAME like ‘ARPURGEB.pls’ AND c.file_id = v.file_id AND c.app_short_name = ‘AR’;

When a copy driver (C) or the copy portion of a unified driver (U) are aborted for any reason, upon reapplying, the CREATION_DATE and/or LAST_UPDATE_DATE columns in the patching history tables (Ex: AD_FILE_VERSIONS)are not updated to show the proper installation date but are left with the 01-01-1950 date. you can resolve the issuse by applying the latest ad.I patch.

Question:  How to check whether the product is install,shared and Not installed in Apps.?

Answer :

SQL>select t.application_name, t.application_id, i.patch_level, decode(i.status,’I’,’Fully Installed’,‘N’,’Not Installed’,’S’,’Shared’,’Undetermined’) statusfrom fnd_product_installations i, fnd_application_vl twhere i.application_id = t.application_idorder by t.application_id;

Nagulu Polagani

"We are all apprentices in a craft where no one ever becomes a master."