Oracle E-Business Suite Interview Questions
Difference between Oracle EBS 12.1.3 and Oracle EBS R12.2.0 ?
1)In R12.2 we have two kind of filesystems fs1(run filesystem) and fs2(patch filesystem) where as In R12.1.3 we only deal with one application filesystem.
2)In R12.2 we have the Application servers replaced by Weblogic server to manage the technology statck.
The 10.1.3 Home is replaced by FMW (Fusion Middleware Home) i.e $FMW_HOME
3)The major change in R12.2 is involvement of Weblogic server to manager all the forms,oacore servers
where as in R12.1.3 we had the Application server 10.1.3 to manage the web home or Java Home
4)The adpatch(patching) in R 12.1.3 is replaced by adop(online patching) in R 12.2.4
5)adop utility involves 5 phases to apply a standard patch in Oracle EBS R12.2.4.
6)While installing Oracle EBS 12.2.0 ,It will ask for TWO PORT POOLS one for the run file system and another patch file system.
7)In oracle EBS 12.2.0 ;While starting and stop all services it will ask weblogic password in additional to apps.
How to check prerequisite patches while applying Database Patch using opatch?
Go to the Directory where patch is copied(PATCH TOP)
$OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Verify the Logfile
Message:Patch 18308717 is not subset of any other patch processed till now
From the above logs we can confirm that there are no-prerequistics patches to be applied before applying 18308717.
Name few profiles, which will differentiate the prod to test ?
Base Desktop look and feel
Site name
Java Colour scheme
Java Look and Feel
fnd_conc_clone.setup_clean ?
fnd_conc_clone.setup_clean:
fnd_conc_clone ===> is package
setup_clean ====> it is procedure name
When we run fnd_conc_clone.setup_clean it deletes the information from the below tables.
fnd_conc_clone.setup_clean to cleanup fnd_nodes table in the target to clear source node information as part of cloning.
Delete from fnd_concurrent_queue_size
Delete from fnd_concurrent_queues_tl
Delete from fnd_concurrent_queues
Delete from fnd_nodes;
Syntax:
Connect as apps user:
SQL> exec fnd_conc_clone.setup_clean;
PL/SQL procedure successfully completed.
SQL> commit;
Post step:
run the autoconfig on DB tier and middle tier this will register the nodes in fnd_nodes tables.
What is cmclean.sql ?
Scenario when to run:
To cleanup running and pending requests we use cmclean.sql, If we stop concurrent managers using abort options then concurrent requests will be in running state ,Next when we start concurrent manager the processes will not start properly.
Clean out the concurrent manager tables by re-setting values to ZERO.
If cmclean.sql is run when the concurrent managers are up and running ,the script will not be able to clean and remove the rows from the concurrent manager process and request tables as the ICM and other managers will be holding locks on these tables.So its better to shutdown the concurrent manager cleanly and then run the cmclean.sql
CMCLEAN will update below tables:
1) FND_CONCURRENT_QUEUES
2) FND_CONCURRENT_PROCESSES
3) FND_CONCURRENT_REQUESTS
4) FND_CONFLICTS_DOMAIN
5) FND_CONCURRENT_CONFLICT_SETS
what is the difference between local inventory and global inventory ?
1.Local Inventory:
Inventory inside each Oracle Home is called as local Inventory or ORACLE_HOME Inventory. This Inventory holds information to that ORACLE_HOME only.
2.Global Inventory
The central inventory directory outside the ORACLE_HOME (Global Inventory.Global Inventory holds the information about Oracle Products on a Instance, The inventory contains the high level list of all oracle products installed on a machine such as ORACLE_HOMES or JRE.
oraInst.loc in /etc (on Linux) or /var/opt/oracle (solaris).
* The inventory in the ORACLE_HOME (Local Inventory)
* The central inventory directory outside the ORACLE_HOME (Global Inventory)
What to do if my Global Inventory is corrupted?
If your global Inventory is corrupted, you can recreate global Inventory on machine using Universal Installer and attach already Installed oracle home by option
#NAME?
./runInstaller -silent -attachHome -invPtrLoc $location_to_oraInst.loc ORACLE_HOME=Oracle_Home_Location ORACLE_HOME_NAME=Oracle_Home_Name CLUSTER_NODES={}
why do you run root.sh ?
Root.sh to create a ORATAB in /etc/oratab
Changing permissions of /u01/app/oraInventory to 770.
Changing groupname of /u01/app/oraInventory to dba.
When running on RAC :
1)It Sets Oracle base and home environmental variables.
2)The /etc/oratab file will be created
3)It Performs the super user privileges verification.
4)Adds trace directories
5)It Generates OCR keys for the 'root' user.
6)Adds a daemon to inittab
7)Starts the Oracle High Availability Service Daemon (OHASD) process.
8)It Stops/starts a cluster stack and other cluster resources on the local node
9)Performs a backup of the OCR file
10)Installs the cvuqdisk-1.0.7-1 package
11)Updates the Oracle inventory file.
How to find Oracle EBS Weblogic Server Admin Port and URL ?
1.grep -i s_wls_adminport $CONTEXTFILE
Check for the value 'WLS Admin Server Port'.
2.grep -i AdminServer $CONTEXTFILE
Check for 'listen-port' value of the 'AdminServer'
Weblogic console URL
http://<server name>. <domain name> : <weblogic Admin Port>/console
Ex: http://oracle.test1.com:7001/console
What is Oracle Home Inventory?
Oracle home inventory or local inventory is present inside each Oracle home. It only contains information relevant to a particular Oracle home. This file is located in the following location:
$ORACLE_HOME/inventory
It contains the following files and folders:
* Components File
* Home Properties File
* Other Folders
What is fndfs and fndsm ?
In Oracle application listener support two services FNDFS and FNDSM
FNDFS or the Report Review Agent (RRA) is the default text viewer within Oracle Applications, which allows users to view report output and log files.
FNDSM is the Service manager. FNDSM is executable & core component in GSM ( Generic Service Management Framework ).
what is nofilenamecheck in rman ?
If you want the duplicate filenames to be the same as the target filenames, and if the databases are in different hosts, then you must specify NOFILENAMECHECK. If duplicating a database on the same host as the target database, do not specify the NOFILENAMECHECKoption. Otherwise, RMAN may signal error.
What is DBC File in oracle apps?
The .dbc file is actually the database connector descriptor file used to connect to database and this file is by-default located in $FND_TOP/secure directory, this file is quite important as whenever any program likes to connect to database like forms it uses dbc file where there you find the Guest_user_pwd ,when the guest user connect it does not allow it to directly connect to the database but it first connect goes via this file and cross verify the password of the guest which is kept in this file.
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 are:
GUEST_USER_PWDAPPS_JDBC_URLDB_HOST
what are the Different Oracle Application Database Users ?
Standard Users:
* Apps user
* Applsys
* Applsyspub
* Gust user
* Sysadmin
Custom Users:
* Oracle
* Applmgr
Apps:
Apps User is a Application Super User or Universal Schema. Apps User has complete access to EBS Data Module. & APPS User has privilege to access all Application Objects.
• All runtime Applications connect to Apps Schema,
• Apps User is the owner of all Business Modules.
• Apps is the owner of AOL (Application Object Library) at Database level.
• All Tables Synonym of other Users by default will be granted to Apps User, so that the Apps User can be access the other Users Schema.
Applsys:
Applsys User is a common User created for all Technology Modules.
• Applsys is a owner of All Technology Modules & (Application Data Dictionary).
• Applsys is the owner of Application at Database Level.
Sysadmin:
Sysadmin is the System Administrator User to perform System Administrative tasks.
Applmgr:
Applmgr User is the owner of Application Database Tire at O/S level.
Oracle:
Oracle Useris the owner of Oracle Database Tire at O/S level.
Applsyspub:
Applsyspub User checks the authentications. It will have all the login& logout details of the Users.
Note:- Apps is the default password for both Apps User and Applsys User.
If we change the Password of Apps User then it will automatically change the Password of Applsys User also.
Gust user:-
It is application user with no responsibilities.
GUEST_USER_PWD=GUEST/ORACLE
Aborting an Online Patching Cycle ?
If a patching cycle is failing and the issue cannot be resolved quickly, it is possible to abort the patching cycle and return to normal runtime operation. The patch edition will be dropped.
You can abandon a patching cycle (without applying any patches) by running the command:
$ adop phase=abort
Important: This abort command can only be used before successful completion of the cutover phase. After cutover, the system is running on the new edition, and abort is no longer possible for that patching cycle.
Aborting a patching cycle will drop the patch edition, but you must then run the cleanup and fs_clone phases before starting a new patching cycle. The cleanup must be a full cleanup.
For example:
$ adop phase=prepare
$ adop phase=apply patches=123456
[Patch application encounters problems and you want to abort]
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone
Optionally, you can combine the abort and cleanup commands as follows:
$ $ adop phase=abort,cleanup cleanup_mode=full
Note: You cannot abort application of a patch applied in hotpatch mode or downtime mode.
On a R12 Multi-Node Install -- Why Do All Middle Tiers Run All Services ?
In R12, the concept for Applications Nodes has changed. When installing R12 with multiple nodes. all the nodes are now set as 'Y' in FND_NODES.
This occurs because in R12, concept of unified APPL_TOP is introduced which means everything is laid down on all servers.
From the APPL_TOP perspective, all the Servers on a Multi-Node Environment will have the same files and can now potentially start any Service if needed. In some cases, additional configuration will be required before this can be done since there can be profiles, etc associated with each Server.
For R12, the only difference between the Servers, are the Services that have been activated on each Node.
The Services are identified by the variables on the /service_group/ section in the APPS Context File:
Root Service Group : s_root_status
Web Entry Point Services : s_web_entry_status
Web Application Services : s_web_applications_status
Batch Processing Services : s_batch_status
Other Service Group : s_other_service_group_status
Depending on the value of these variables (enabled or disabled), adstrtal.sh / adstpall.sh will only start/stop the Services associated with them, ignoring the rest.
For example, if a node has only /s_batch_status/ "enabled" and the rest of the services are disabled, when you run adstrtall.sh on that Server and it will only start the Concurrent Managers and the TNS Listener for Apps.
Why is adop still showing phase APPLY status ACTIVE after having applied successfully a patch using "adop phase=apply hotpatch=yes"?
There were no errors in the adop patch logs. But adop status still shows ?
One cannot run adop phase=cutover or adop phase=cleanup because there are no Online Patching cycle that was started.
The patch was applied in hotpatch=yes mode on the RUN filesystem.
When the patch is applied with adop hotpatch=yes mode, there are no Online Patching cycle started yet -- all is on the RUN filesystem -- so there are no adop commands that can be used like adop phase=cutover or adop phase=cleanup.
Example:
When one applies in hotpatch mode the APPLY phase will remain active until such time as run a PREPARE during the next patching cycle.
The APPLY phase is active because you can potentially run another hotpatch.
Once one apples a hotpatch, there are no further actions required.
When needing to apply a new patch -- this time in Online Patching mode -- run the adop phase=prepare command.
At that time, adop config change detector will find that the RUN filesystem has had patches applied in hotpatch mode and will sync the PATCH filesystem as part of the prepare phase.
Where we need to apply a patch in Multinode ?
In a multi-node deployment, adop commands are only executed from the Primary Node. The primary adop session uses remote execution to automatically perform required actions on any secondary node.
Which are the possible ways to follow for applying a patch on a multinode enviroment? (The production is multi-application node (6 Application servers i.e 1 master / 5 slaves) (12.1.1 & 12.1.3)?
The answer depends on your architecture :
if you are using a shared application tier file system for all your nodes
you will have to patch only one time on one of the nodes (Primary node or Master node)
if not the patch needs to be applied on all nodes.
Cloning of Oracle E-business Suite (12.1.1 & 12.1.3)
Clone From Production To Development
*Make sure preclone scripts already run, if it is not first run preclone on dbTier and appsTier.
*Take the backup of application binaries as well as database backup.
*Mount the backups to the target side, if it is not mounted then do the scp.
*Create blackouts on target side, and send an outage email to business users that this instance is going to clone.
*Shutdown the application services, shutdown the database and startup restrict mode drop the database, and take backup if required (export*import, pfile, context_file and other config files) sometimes it depends on your project to project)
*On target side untar the binaries of database and prepare the pfile, in pfile keep all the parameters which is there, just add two parameters (db_file_name_convert and log_file_name_convert) which actually convert the filesystem from source to target, and then we do startup nomount (which starts the instance and background processes)
*Now we will run rman duplicate.
*Rman connect auxiliary and run command allocate channels.
*"DUPLICATE" target database to name of the database along with the backup location and then release channels.
what internally rman duplicate will do is?
*it will restore the controlfile from the backup.
*it will mount the database internally (alter database mount).
*it will restore the database.
*it will recover the database.
*and then it will open the database with resetlogs option.
when you open the database with resetlogs, incarnation of the database will be happen, it means
*new logfile sequence number will be assigned and it will be set to 1
*redologfile will be given a new timestamp
*new scn number will be assigned and then your datafile and controlfile will be sync.
*Untar binaries for application side, and then go to common_top/clone/bin and fire perl adcfgclone.pl appsTier.
*Fire perl adcfgclone.pl appsTier context_file=<give cloned instance contextfile>
Post Clone Steps:
* Change the APPS password.
*Cancel the scheduled requests.
*Change the java color and banner.
*Updating workflow mailer status.
*Cleanup the nodes table by running.
EXEC FND_CONC_CLONE.SETUP_CLEAN;.
*Run autoconfig on both the tiers.
*Drop softlinks which are pointing to production
*Do sanity check and release instance for user access.
*Etc
Applying Application Patches to Oracle EBS 11i/R12 Applications (12.1.1 & 12.13) ?
Step 1: Before applying a patch you must check whether the patch is applied or not:
Method 1:
For this we query the database:
Sqlplus apps/<apps_password>
Sql> select bug_id, bug_number from ad_bugs where bug_number='&num';
Sql> select patch_type, patch_name from ad_applied_patches where patch_name='&num';
Method 2:
Checked with OAM
a) Connect to OAM
b) Go to System Administrator --> OAM-->Dashboard --> Site map --> Maintenance --> Applied patches
c) Enter patch id and press ‘Go’
d) See if patch was returned
Step 2: Download the patch:
Example:
www.support.oracle.com
Step 3: Unzip the patch:
Exapmple: Command:
Unzip < patch.zip>
Step 4: Before applying patch:(check invalid objects in DB) and Backup the invalids object before applying the patch:
Example:
Sql> select name from v$database;
Sql>select owner,count(*) from dba_objects where status='INVALID' group by owner;
Backup the invalids with CTAS:
create table dba_objects_18apr2013 AS select * from dba_objects where status='INVALID';
Note:
Send outage communication/put mail to business
Step 5: Stop all application services (If we don’t want to close application services, we have hot patch option:
Note: If it is shared application file system you have to bring down admin tier service i.e, concurrent node it depends on business requirement.
ps -fu applmgr|grep -i FND|wc -l
If processes not went down, do kill processes and proceed ahead
Step 6: Enable Maintenance mode
Example:
$ adadmin
5. change maintenance mode
To check maintenance mode enable or not use below query
select fnd_profile.value('APPS_MAINTENANCE_MODE') from dual;
If the status:
“MAINT” = MAINTENANCE MODE HAS BEEN ENABLED AND THE USERS WILL NOT BE ABLE TO LOGIN.
“NORMAL” = MAINTENANCE MODE HAS BEEN DE-ACTIVATED AND THE USERS WILL BE ABLE TO LOGIN.
Step 7: Applying patch using ‘adpatch’ (auto patch utility):
FIRE :adpatch
Step 8 : Please check whether patch is applied or not.
Step 9: Disable Maintenance mode again by using 'adadmin' utility:
Step 10: Start application services :
Step 11:After applying PATCH:
step a:Verify the patch is applied successfully:
SQL> select name from v$database;
NAME
---------
TESTDB
SQL> select bug_number,creation_date from ad_bugs where bug_number='5522470';
BUG_NUMBER CREATION_DATE
------------------------------ ---------------
5549427 12-FEB-13
Step b:Run cmclean.sql
Run cmclean.sql from application node by going to $COMMON_TOP/admin/scipts/TESTDB_ebstest in 11i,where as in R12 goto $ADMIN_SCRIPTS_HOME or $INST_TOP/admin/scripts
commit;
Note:We run cmclean after clonning also to make sure the node name is updated in the FND_NODES Table correctly
SQL> select owner,count(*) from dba_objects where status='INVALID' group by owner;
OWNER COUNT(*)
------------------------------ ----------
SYS 1
TEST_USER1 2
TEST_USER2 5
APPS 22
Step c:Check the file versions got changed successfully after applying patch:
strings -a POXWARMB.pls|grep Header =>Can be used to check the file version.
Step d:Do the Health Check of Oracle EBS Application
Note :We can get HOME page URL by using below query:
SQL>Select Home_URL from icx_parameter;
Health check completed successfully by submitting active user Concurrent request REQUEST ID 28758820.
Step e:Intimate end User
Make sure you intimate the end User or release your application to the end User
do sanity check and release instance for user access .
In sanity check you will submit below two requests:
Go to System adminstrator --->Request--->Run
1)Active User =====>Check View LOG/vIEW OUT
2)Active Responsiblity ===>Check View LOG/vIEW OUT
what are Managed Servers R12.2 EBS ?
oacore – Used to provide core functionality in Oracle E-Business Suite application tier Java code, including OAF-based functionality for Oracle E-Business Suite products.
oafm – Used for web services, Secure Enterprise Search, Oracle Transport Agent, and other components.
forms – Serves all Oracle Forms functionality.
forms-c4ws – Exposes Oracle Forms-based functionality as web services.
An additional application type, which is not deployed out-of-the-box, may be provisioned if additional Oracle applications are installed:
oaea: Used when installing additional Oracle applications such as Oracle E-Business Suite AccessGate, eKanban, and Spatial.
Oracle E-Business Suite creates one cluster for each application type deployed in the EBS WLS domain:
oacore_cluster1
oafm_cluster1
forms_cluster1
forms-c4ws_cluster1
oaea_cluster1
Managed server names for these clusters are grouped as follows:
oacore_server1 for Node1, oacore_server2 for Node 2, etc.
oafm_server1 for Node 1, oafm_server2 for Node 2, etc.
forms_server1 for Node 1, forms_server2 for Node 2, etc.
forms-c4ws_server1 for Node 1, forms-c4ws_server2 for Node 2, etc.
oaea_server1 for Node 1, oaea_server2 for Node 2, etc.
what is Restart option adop 12.2 ?
If you have shut down the workers, or if adop quits while performing processing actions, it saves all the actions completed up to that point in restart files. Investigate and resolve the problem that caused the failure, then restart adop. After you restart adop, it will ask if you want to continue with the previous session (at the point where the processing stopped), or start a new session.
Note: A difference from adpatch is that adop restart behavior is controlled by the abandon=yes/no and restart=yes/no options in the input_file that can be passed to the adop command in the apply phase.
You have several options when restarting (or abandoning) application of individual patches, as follows.
If you want to restart a failed patch from where it left off, you only need to specify restart=yes on the command line:
adop phase=apply patches=1234 restart=yes
If you want to restart a failed patch from the very beginning, you need to specify abandon=yes on the command line:
adop phase=apply patches=1234 abandon=yes
If you want to ignore a previously failed patch and apply a different one instead, you need to specify the new patch number and abandon=yes on the command line:
adop phase=apply patches=5678 abandon=yes
How to execute empty patching cycle, without applying any patch?
Solution:
The syntax to run an empty patch cycle is:
adop phase=prepare,finalize,cutover,cleanup
Which are the possible ways to follow for applying a patch on a multinode enviroment? (The production is multi-application node (6
Application servers i.e 1 master / 5 slaves) (12.1.1 & 12.1.3) ?
The answer depends on your architecture :
if you are using a shared application tier file system for all your nodes
you will have to patch only one time on one of the nodes (Primary node or Master node)
if not the patch needs to be applied on all nodes.
how to skip a workers during patching ?
If you want to skip a worker , this option is not visible & do it at your own risk there is option 8 ( depending on your AD version , it might vary so if adctrl is displaying 7 options skip worker will be option 8 & if adctrl is showing 6 options skip worker will be option 7)
You can select individual worker or a group of worker separated by - like 2-5 will select worker from 2 to 5.
Changes In 12.1.3 : While performing cloning activity on newly 12.1.3 instance ?
* While running adcfgclone on appsTier it will ask hostname(FQDN).
* After providing all the inputs to adcfgclone.pl it will ask to start the services or not.
* When you are running cmclean.sql it will give notification to stop all the concurrent managers.
EBS Technology Codelevel Checker (ETCC) ?
There is one patch provides two scripts, together referred to as ETCC, that help ensure you have the required database and middle tier bugfixes installed for your Oracle E-Business Suite Release 12.2 system.
The scripts are:
* checkDBpatch.sh (checkDBpatch.cmd on Windows). This is the Database EBS Technology Codelevel Checker (DB-ETCC), which determines if all the needed bugfixes exist in the specified database ORACLE_HOME.
* checkMTpatch.sh (checkMTpatch.cmd on Windows). This is the Middle Tier EBS Technology Codelevel Checker (MT-ETCC), which determines if all the needed bugfixes exist in the middle tier file system.
What Does FND Stands For?
FND stands for foundation tables which is a combination of AOL SYSTEM ADMINISTRATOR MODULES tables, it will be placed under FND_TOP. This module is a standard and any customization may some-time leads to distruction of the Oracle Applications.
Reasons For Enabling Maintenance Mode ?
To ensure optimal performance and reduce downtime during patching sessions, AutoPatch requires that you enable Maintenance mode when you apply a patch. Enabling this feature shuts down the Workflow Business Events System and sets up function security so that Oracle Applications functions are unavailable to users. This provides a clear separation between normal runtime operation and system downtime for patching.
12.2 E-Business Suite Applications DBA Steps To Check if a Patch is Applied in 12.2.x using SQL*PLUS ?
In eBusiness Suite (EBS) 12.2.x you cannot query the AD_BUGS table to check if patches have been applied.
The AD_BUGS table may have entries for patches that were applied but later the patching cycle was aborted (not really applied).
To check whether a patch is really applied use the AD_PATCH.IS_PATCH_APPLIED pl/sql function.
Using this API is an alternative method for users without access to Oracle Applications Manager's "Patching and Utilities" feature to determine if a certain patch is applied.
expected results:
EXPLICIT = applied
NOT APPLIED = not applied / aborted
Note: If you are sure patch is applied but it is not showing as applied via the above steps, then update the snapshot manually with the steps below:
1. Start adadmin after source the RUN FS env.
2. Select "2. Maintain Applications Files menu" in "AD Administration Main Menu".
3. In "Maintain Applications Files", select "4. Maintain snapshot information".
4. Select "2. Update current view snapshot" in the "Maintain Snapshot Information".
5. Select "1. Update Complete APPL_TOP" in the "Maintain Current View Snapshot Information".
How many number of workers required for applying adop patch ?
Run TOP/HTOP/GLANCE during patching,
increase the number of workers if CPU usage is mostly < 65%
decrease the number of workers if CPU usage is mostly > 85%
what is RUN and PATCH filesystem in 12.2.x ?
1.The "Run Edition" is the code and data used by the running application. The Run Edition includes a complete application-tier file system along with all objects and data visible in the default edition of the database. As a developer, you will connect to the Run Edition whenever you are engaged in normal development activity on the system.
2.The "Patch Edition" is an alternate copy of Oracle E-Business Suite code and seed data that is updated by Online Patching. The Patch Edition includes a complete copy of the application-tier file system and editioned database code objects. The Patch Edition is only usable when an Online Patching session is in progress. End users cannot access the Oracle E-Business Suite Patch Edition, but as a developer you may need to connect to the Patch Edition of a system when applying patches or debugging problems with Online Patch execution.
Note:
There are a number of SQL*Plus scripts that can provide useful information about the state of your editioned development environment. All ADZD* scripts are found under $AD_TOP/sql. For convenience, you can add this directory to the SQLPATH environment variable so that you can refer to the scripts by simple name.
Custom Forms, Reports and other custom files deployed on RUN file system lost after adop cutover phase during adop patching in R12.2.x ?
If you have deployed custom forms, reports etc. on a RUN filesystem then -
You should add entries for all your custom files to the custom synchronization driver file located at $APPL_TOP_NE/ad/custom/adop_sync.drv (%s_ne_base%/EBSapps/appl/ad/custom/adop_sync.drv).
The adop utility uses this driver file to synchronize files between the run file system and the patch file system.
Add your entries in the section marked by the '#Begin Customization' and '#End Customization' comments.
Example:
rsync -zr %s_current_base%/EBSapps/appl/<Company identifier> %s_other_base%/EBSapps/appl
Synchronizing custom Top with Symbolic Links using adop_sync.drv:
Please add "-l" option to rsync command
This option is copy symbolic link as a symbolic link.
Example:
rsync -rl %s_current_base%/EBSapps/appl/XXX/12.0.0/bin %s_other_base%/EBSapps/appl/XXX/12.0.0
What is apply_mode=hotpatch in ebs 12.2 ?
With apply_mode=downtime; adop directly applies the patch .. No patching cycles...
Note: apply a patch with downtime is only applicable with Oracle support or if given in a readme.txt file
Steps:
1. shutdown the application (adspall.sh)
2. start the admin server (adadminsrvctl.sh start)
3. download the patch and copy to patch_top
4. apply patch as below,
$ adop phase=apply patches=19845055 apply_mode=downtime workers=15
5. stop the admin server (adadminsrvctl.sh stop)
6. start the application (adstrtall.sh)
It is logical to run cleanup and fs_clone as well after applying using hotpatch option.
what is actualize_all option in 12.2 ?
Every time we perform online patching , there will an old database edition entry and this will accumulate as and when we do more online patching's.
Oracle suggests that we perform actualize_all after this reaches a count of 25. However it would be time consuming to perform the cleanup after the count has increased.
If the number of these grows too large, system performance will start to be affected. When the number of old database editions reaches 25 or more, you should consider dropping all old database editions by running the adop actualize_all phase and then performing a full cleanup.
Table=dba_editions
select edition_name from dba_editions order by edition_name;
Steps:
$ adop phase=prepare
$ adop phase=actualize_all
$ adop phase=finalize finalize_mode=full
$ adop phase=cutover
$ adop phase=cleanup cleanup_mode=full
How to check the Log files for adop phases ?
The log directory structure is as follows:
$ADOP_LOG_HOME/<session_id>/<execution_id>/<phase>
The components of this structure are as follows:
<session ID> is the patching session ID
<execution_id> is a timestamp in the standard <YYYYMMDD_HHMMSS> format. An <execution_id> sub-directory is created for every invocation of adop on the command line
<phase> is the online patching phase
What modes in adop Patching ?
The adop utility is normally used to apply patches in an online patching cycle. It can also be used:
* To run a patching cycle, and test patch application without actually taking any apply actions, in test mode
* To apply patches outside a patching cycle in downtime mode
* To apply patches without connecting to the database in preinstall mode
What is Backup Directory ?
When adop runs, a backup directory is created in the directory where you unzip the patch. The old version of each file updated by the patch is copied into the backup directory. When applying large patches (such as release update packs, product family RUPs, and pre-upgrade patches), ensure there is enough disk space on the system where you unzip the patch, or the patching process may fail. We recommend having at least twice the amount of disk space as the unzipped patch file uses.
How to Monitor Adop Status ?
You can obtain a brief report for the current patching session by running the command.
$ adop -status
If you want information about a particular session, specify the relevant session ID:
$ adop -status <session ID>
If you want additional details of operations performed:
$ adop -status -detail
How to Abort an Online Patching Cycle ?
If a patching cycle is failing and the issue cannot be resolved quickly, it is possible to abort the patching cycle and return to normal runtime operation. The patch edition will be dropped.
You can abandon a patching cycle (without applying any patches) by running the command:
$ adop phase=abort
Important: This abort command can only be used before successful completion of the cutover phase. After cutover, the system is running on the new edition, and abort is no longer possible for that patching cycle.
Aborting a patching cycle will drop the patch edition, but you must then run the cleanup and fs_clone phases before starting a new patching cycle. The cleanup must be a full cleanup.
For example:
$ adop phase=prepare
$ adop phase=apply patches=123456
[Patch application encounters problems and you want to abort]
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone
Optionally, you can combine the abort and cleanup commands as follows:
$ adop phase=abort,cleanup cleanup_mode=full
Note: You cannot abort application of a patch applied in hotpatch mode or downtime mode.
How to Restart adop patch ?
If you have shut down the workers, or if adop quits while performing processing actions, it saves all the actions completed up to that point in restart files. Investigate and resolve the problem that caused the failure, then restart adop. After you restart adop, it will ask if you want to continue with the previous session (at the point where the processing stopped), or start a new session.
Note: A difference from adpatch is that adop restart behavior is controlled by the abandon=yes/no and restart=yes/no options in the input_file that can be passed to the adop command in the apply phase.
You have several options when restarting (or abandoning) application of individual patches, as follows.
If you want to restart a failed patch from where it left off, you only need to specify restart=yes on the command line:
adop phase=apply patches=1234 restart=yes
If you want to restart a failed patch from the very beginning, you need to specify abandon=yes on the command line:
adop phase=apply patches=1234 abandon=yes
If you want to ignore a previously failed patch and apply a different one instead, you need to specify the new patch number and abandon=yes on the command line:
adop phase=apply patches=5678 abandon=yes
What are Customized Files ?
adop reviews the AD_FILES table to determine if any customized files (Register Flagged Files) will be replaced by the patch. If so, it displays a message listing the customized files it will replace.
Note:
adop reviews the AD_FILES table to determine if any customized files (Register Flagged Files) will be replaced by the patch. If so, it displays a message listing the customized files it will replace.
What are Managers adctrl ?
The manager assigns each worker a unique ID and inserts a row for each worker in the FND_INSTALL_PROCESSES table. It creates this table to serve as a staging area for job information, and as a way to communicate with the worker. Communication is accomplished using two columns: CONTROL_CODE and STATUS.
What are deffered_jobs ?
The deferred job feature uses the AD_DEFERRED_JOBS table. This table is created when the FND_INSTALL_PROCESSES table is created, and is dropped when the FND_INSTALL_PROCESSES table is dropped.
What is Oracle Workflow?
Oracle Workflow allows you to define business processes using a drag-and-drop designer. You can route relevant information to decision makers, automate processes, deliver electronic notifications to users in a given workflow, and monitor your processes as they are implemented.
Online Patching Log Analyzer Utility (this new feature is delivered by AD and TXK C Delta 4 patches) ?
This utility analyzes adop log directories for errors and warnings, and displays messages to help the user quickly identify any problems that may have occurred during an adop run. It thereby offers an alternative to reviewing log files manually.
The Log Analyzer utility can be run without options:
To scan all log directories of the latest adop session for errors:
$ adopscanlog
The utility can also be run with various options. Examples include:
To scan log directories relating to the latest run of adop in the latest session:
$ adopscanlog -latest=yes
To scan log directories relating to the latest run of the specified phase, in the latest session:
$ adopscanlog -latest=yes -phase=<phase_name>
To scan all log directories of a given session (represented by a session_id) for errors:
$ adopscanlog -session_id=<number>
To see a complete list of supported parameters:
$ adopscanlog -help
How to Check the current status of the adop cycle ?
Source the run filesystem environment file and run command
adop -status
usage:
adop -status generates a summary report
adop -status <sessionID> generates a summary report for that session ID
adop -status -detail generates a detailed report
How to Check AD and TXK C Patch levels
SELECT codelevel FROM AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk','ad');
Online Patching Delta 7 Enhancements ?
1.Enhanced adop console messages
2.New Online Patching monitoring tool (adopmon)
3.New Online Patching infrastructure validation option (adop -validate)
4.Improved phase execution performance