Sunday, November 24, 2013

Maintenence Mode in R12


Q.Why we enable maintenance mode while patching?

Maintenance mode provides a clear separation between normal runtime operation of Oracle Applications and system downtime for maintenance. Enabling the maintenance mode feature shuts down the Workflow Business Events System and sets up function security so that no Oracle Applications functions are available to users. Used only during AutoPatch sessions,maintenance mode ensures optimal performance and reduces downtime when applying a patch. For more information, refer to Preparing your System for Patching in Oracle Applications Maintenance Utilities.

Q.what is the use of having two appl_tops (shared appl_top)?

If you have two/three (Multiple) Middle Tier for Large User base then you have to install APPL_TOP, COMMON_TOP & ORA_TOP equal to number of Nodes in your configuration. So if you have three middle tier then you need these three top three times & if there are n nodes you need n time these three top’s .This result in lots of Space Requirement & bigger problem is patching so If you have 5 nodes you need to apply apps patch 5 times.
So Oracle Came Up with solution to have single APPL_TOP which is shared across all nodes in apps. This will save space as well patch timing. This concept of sharing APPL_TOP file system across all Middle Tier Nodes is called as APPL_TOP . You will say if I can share APPL_TOP why Can’t I share COMMON_TOP & ORA_TOP as well which are also part of Application Tier , Yes you can & this concept is called as Shared application Tier.

Q.how can we create context file in 11i and R12?

in 11i we can user adbldxml.pl for both application and database node but in R12 it is changed

 ./adclonectx.pl retrieve-- on Apps tier

./adbldxml.pl---- Dbtier

Q.What will happen When you run Adpreclone and Adcfgclone

This will run in two steps Techstack and database.
Techstack:   It will create following directories in the ORACLE_HOME/appsutil/cloneJlib, db, data where “Jlib” relates to libraries “db” will contain the techstack information, “data” will contain the information related to datafiles and required for cloning.
Creates driver files at ORACLE_HOME/appsutil/driver/instconf.drv
Converts inventory from binary to xml, the xml file is located at $ORACLE_HOME/appsutil/clone/context/db/Sid_context.xml
Prepare database for cloning:  This includes creating datbase control file script and datafile location information file at
$ORACLE_HOME/appsutil/templateadcrdbclone.sql, dbfinfo.lst
Generates database creation driver file at ORACLE_HOME/appsutil/clone/data/driverdata.drv
Copy JDBC Libraries at ORACLE_HOME/appsutil/clone/jlib/classes12.jar and appsoui
When you run “adpreclone.pl appsTier” On Apps Side:
This will create stage directory at $COMMON_TOP/clone. This also run in two steps.
Techstack:  Creates template files for Oracle_iAS_Home/appsutil/template and Oracle_806_Home/appsutil/template
Creates Techstack driver files for IAS_ORACLE_HOME/appsutil/driver/instconf.drv and 806_ORACLE_HOME/appsutil/driver/instconf.drv
APPL_TOP preparation:  It will create application top driver file at $COMMON_TOP/clone/appl/driver/appl.drv-Copy JDBC libraries and $COMMON_TOP/clone/jlib/classes111.zip
Now Shutdown all the services of Application and database to Copy the file System to target location
On Target Machine
===============
Run adcfgclone.pl for dbTier.
On database side:
cd $ORACLE_HOME/appsutils/clone/bin
perl adcfgclone.pl dbTier pwd=apps
This will use the templates and driver files those were created while running adpreclone.pl on source system and has been copied to target system.
Following scripts are run by adcfgclone.pl dbTier for configuring techstack
adchkutl.sh — This will check the system for ld, ar, cc, and make versions.
adclonectx.pl — This will clone the context file. This will ceate a new context file as per the details of this instance.
runInstallConfigDriver — located in $Oracle_Home/appsutil/driver/instconf.drv
Relinking $Oracle_Home/appsutil/install/adlnkoh.sh — This will relink ORACLE_HOME
For data on database side, following scripts are runDriver file $Oracle_Home/appsutil/clone/context/data/driver/data.drv
Create database adcrdb.zipAutoconfig is runControl file creation adcrdbclone.sql
Run adcfgclone.pl for dbTier.
On Application Side:
cd $COMMON_TOP/clone/bin/
perl adcfgclone.pl appsTier pwd=apps
Following scripts are run by adcfgclone.pl:
Creates context file for target adclonectx.pl
Run driver files $ORACLE_HOME/appsutil/driver/instconf.drv and $IAS_ORACLE_HOME/appsutil/driver/instconf.drv
Relinking of Oracle Home $ORACLE_HOME/bin/adlnk806.sh and $IAS_ORACLE_HOME/bin/adlnkiAS.sh
At the end it will run the driver file $COMMON_TOP/clone/appl/driver/appl.drv and then runs autoconfig.

Q: Whether we can apply 2 patches at a time without merging them, why ??

A: We can’t apply 2 patches at a time because when patch started it will create 2 tables in db (AD_DEFERRED_JOBS AND

FND_INSTALL_PROCESSES). If you apply patches at a time both will try to create those 2 tables in db, so both will fail.

Q. After applying patch whether we can revert it back ?

A: No, as it is going to update some tables in db.

Q. Whether we need to run adpreclone everytime when we clone, why ?

A: We have to run adpreclone if there are changes in any customizations or any other tablespaces like if applied any AD patches,

Big Patches, Minipacks, ATG patches, Tech Stack, and AD Patches. If there are no changes, then i don’t think there is any need to

preclone it again.

Example: When you run adpreclone.pl, it essentially does an “alter database backup controlfile to trace” and stores the information from

that in a file within ${ORACLE_HOME}/appsutil. This represents all of the datafiles in the database at that particular time. The information

gathered at this time represents the state of the source at this time. If you does not run adpreclone.pl again when u do clone next time,

Your backup (your target) represents an earlier time (prior to the addition of that datafile), so the “create controlfile” step

that adcfgclone is doing is going to fail.

Q: Which files it will call when we run adcmctl.sh start apps/apps ?

A: It will call FNDLIBR executable, which will be located in $FND_TOP/bin.

Q: What are the main tables related to concurrent manager ?

A: FND_NODES

FND_CONCURRENT_PROCESSES (fcproc)

FND_CONCURRENT_REQUESTS (fcr)

FND_CONCURRENT_QUEUES (fcq)

FND_CONCURRENT_PROGRAMS (fcprog)

FND_EXECUTABLES

FND_CP_SERVICES

FND_CONCURRENT_QUEUE_SIZE

FND_CONCURRENT_QUEUE_CONTENT

FND_CONCURRENT_PROGRAM_SERIAL

FND_CONCURRENT_TIME_PERIODS

FND_CONCURRENT_PROCESSORS