Showing posts with label Oracle Apps 11i. Show all posts
Showing posts with label Oracle Apps 11i. Show all posts

Thursday, March 31, 2011


Scenario:


=========


When you are applying a Big patch which will take around 10 hrs. Now 5 hrs of the patch has been completed and now errored out due to some pre req patch. So now we can follow the steps given below and the resume the remaining part of the patch.


Solution:


1. Using the adctrl utility, shutdown the workers.


a. adctrl


b. Select option "Tell worker to shutdown/quit"



2. Backup the FND_INSTALL_PROCESSES table which is owned by the APPLSYS schema



a. sqlplus applsys/


b. create table fnd_Install_processes_back as select * from fnd_Install_processes;


c. The 2 tables should have the same number of records. select count(*) from fnd_Install_processes_back; select count(*) from fnd_Install_processes;



3. Backup the AD_DEFERRED_JOBS table.



a. sqlplus applsys/


b. create table AD_DEFERRED_JOBS_back as select * from AD_DEFERRED_JOBS;


c. The 2 tables should have the same number of records. select count(*) from AD_DEFERRED_JOBS_back; select count(*) from AD_DEFERRED_JOBS;



4. Backup the .rf9 files located in $APPL_TOP/admin/restart directory.


At this point, the adpatch session should have ended and the cursor should be back at the Unix prompt.



a. cd $APPL_TOP/admin/


b. mv restart restart_back


c. mkdir restart



5. Drop the FND_INSTALL_PROCESSES table and the AD_DEFERRED_JOBS table.



a. sqlplus applsys/


b. drop table FND_INSTALL_PROCESSES;


c. drop table AD_DEFERRED_JOBS;



6. Apply the new patch.



7. Restore the .rf9 files located in $APPL_TOP/admin//restart_back directory.



a. cd $APPL_TOP/admin/


b. mv restart restart_


c. mv restart_back restart



8. Restore the FND_INSTALL_PROCESSES table which is owned by the APPLSYS schema.



a. sqlplus applsys/


b. create table fnd_Install_processes as select * from fnd_Install_processes_back;


c. The 2 tables should have the same number of records. select count(*) from fnd_Install_processes; select count(*) from fnd_Install_processes_back;



9. Restore the AD_DEFERRED_JOBS table.



a. sqlplus applsys/passwd


b. create table AD_DEFERRED_JOBS as select * from AD_DEFERRED_JOBS_back;


c. The 2 tables should have the same number of records. select count(*) from AD_DEFERRED_JOBS_back; select count(*) from AD_DEFERRED_JOBS;



10. Re-create synonyms



a. sqlplus apps/apps


b. create synonym AD_DEFERRED_JOBS for APPLSYS.AD_DEFERRED_JOBS;


c. create synonym FND_INSTALL_PROCESSES FOR APPLSYS.FND_INSTALL_PROCESSES;



11. Start adpatch, it will resume where it stopped previously.

Wednesday, September 29, 2010

MERGE PATCH USING ADMERGE UTILITY

MERGING THROUGH ADMERGE:
===========================
STEP 1 : Create a Source Directory for example : /home/applmgr/test_patch_ss
STEP 2 : Copy the udriver patches that we want to be merged inside the above directory.
STEP 3 : Create a Destination Directory for example : /home/applmgr/test_dest_ss
STEP 4 : Now Run the below command and at the end of the command give the driver file name that you want after the patch merged. example saravana
STEP 5 : See inside the Destination Location /home/applmgr/test_patch_ss. You will find u_saravana.drv file.

SYNTAX :

admrgpch -s /home/applmgr/test_patch_ss -d /home/applmgr/test_dest_ss -merge_name saravana

Executing the merge of the patch driversNo driver files exists in /home/applmgr/test_patch_ss/5498551.
-- Processing patch: /home/applmgr/test_patch_ss/7429271
-- Done processing patch: /home/applmgr/test_patch_ss/7429271
Copying files...
5% complete. Copied 45 files of 882...
10% complete. Copied 89 files of 882...
15% complete. Copied 133 files of 882...
20% complete. Copied 177 files of 882...
25% complete. Copied 221 files of 882...
30% complete. Copied 265 files of 882...
35% complete. Copied 309 files of 882...
40% complete. Copied 353 files of 882...
45% complete. Copied 397 files of 882...
50% complete. Copied 441 files of 882...
55% complete. Copied 486 files of 882...
60% complete. Copied 530 files of 882...
65% complete. Copied 574 files of 882...
70% complete. Copied 618 files of 882...
75% complete. Copied 662 files of 882...
80% complete. Copied 706 files of 882...
85% complete. Copied 750 files of 882...
90% complete. Copied 794 files of 882...
95% complete. Copied 838 files of 882...
100% complete. Copied 882 files of 882...
Character-set converting files...
2 unified drivers merged.
Patch merge completed successfully

Wednesday, March 25, 2009

User Validation Check in APPS


Check the GUEST user information:
================================


a. Run following SQL:

select user_name, start_date, end_date
from fnd_user
where user_name = 'GUEST';

This should return one row, end_date should be NULL or in advance of today's date, and start_date should be before today's date.

b. Validate the GUEST username/password combinations from the DBC file.
Using the GUEST_USER_PWD value in the DBC file (see step 2) run the following sql:

select fnd_web_sec.validate_login('GUEST',' ') from dual ;
This should return Yes If this returns N, then do:

select fnd_message.get from dual;

This should give a reason why the validation failed, or an error message. If this fails with a database error, confirm the problem is not specific to the GUEST user.

Redo the SQL command with a different userid (like sysadmin)

select fnd_web_sec.validate_login('SYSADMIN','') from dual;
Again, this command should return 'Y' if it is working OK. If not, you should reload the jar files to the database using adadmin.

18. Run the following script to ensure there are no invalid objects:

select owner, object_name, object_type
from all_objects
where status != 'VALID'
order by owner, object_type, object_name;

Saturday, October 18, 2008

Change Apps Password

Steps to change apps password :

1. Backup entire system

2. Stop concurrent manager

cd $COMMON_TOP/admin/scripts/$CONTEXT_NAME
adcmctl.sh stop apps/

3. Backup FND_ORACLE_USERID table

sqlplus apps/
drop table FND_ORACLE_USERID_BAK;
create table FND_ORACLE_USERID_BAK as select * from FND_ORACLE_USERID;
exit;

4. Change apps password Using FNDCPASS utility.

$FND_TOP/bin/FNDCPASS apps/ 0 Y system/ SYSTEM APPLSYS

Now run Autoconfig.

5. To Change apps password in configuration files Manually :

$IAS_ORACLE_HOME/Apache/modplsql/cfg/wdbsvr.app
$IAS_ORACLE_HOME/listener/cfg/wdbsvr.app
$ORACLE_HOME/listener/cfg/wdbsvr.app
$FND_TOP/resource/wfmail.cfg
$OA_HTML/bin/appsweb.cfg
$AD_TOP/admin/template/CGIcmd.dat



Known Issues

1. Symptom : Can not login to Oracle Applications

Cause : Invalid apps password in $IAS_HOME/Apache/modplsql/cfg/wdbsvr.app
Solution: Change apps password in $IAS_HOME/Apache/modplsql/cfg/wdbsvr.app

Wednesday, September 10, 2008

Single Node Cloning

Single Node Cloning Steps :
===========================

PreClone Steps:

1.Pre-clone for db Tier

In the Location :

/u01/app/oracle/uatdb/9.2.0/appsutil/scripts/UAT_apps/

perl adpreclone.pl dbTier

2. Pre-clone for appsTier

In the Location:

/u01/app/apps/uatcomn/admin/scripts/UAT_apps/

perl adpreclone appsTier

Note: While running the preclone in the apps Tier its better to be down and database can be Up and Running.But the Order must be dbTier and then appsTier.

Post Clone Steps:

Note:While Running post clone both the Tier will be down and first run the dbTier, Now it will automatically up and running after the end of dbtier cloning and then run for appsTier.

Post Clone Pre Checks:

1.Install the Necessary RPM's
2.Check for the Network
3.Make sure the user and Groups.
4.Check for the ORACLE_HOME and PATH
5.Check for Permissions for folders.
5.Now run the post clone from the following location.

Post Clone for DB Tier:

Location : /u01/app/oracle/uatdb/9.2.0/appsutil/clone/bin

6.[oracle@apps bin]$ perl adcfgclone.pl dbTier

Enter the APPS password [APPS]:
apps

First Creating a new context file for the cloned system.

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

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

Do you want to use a virtual hostname for the target node (y/n) [n] ?:

Target instance is a Real Application Cluster (RAC) instance (y/n) [n]:

Target System database name [UAT]:

Target system RDBMS ORACLE_HOME directory [/u01/app/oracle/uatdb/9.2.0]:

Target system utl_file accessible directories list [/usr/tmp]:

Number of DATA_TOP's on the target system [1]:

Target system DATA_TOP 1 [/u01/app/oracle/uatdata]:

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

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 number [0-99]: 10

Checking the port pool 10
done: Port Pool 10 is free
Database port is 1531

Backing up /u01/app/oracle/uatdb/9.2.0/appsutil/UAT_apps.xml to /u01/app/oracle/ uatdb/9.2.0/appsutil/UAT_apps.xml1.bak

Creating the new Database Context file from :
/u01/app/oracle/uatdb/9.2.0/appsutil/template/adxdbctx.tmp

The new database context file has been created :
/u01/app/oracle/uatdb/9.2.0/appsutil/UAT_apps.xml

Log file located at /u01/app/oracle/uatdb/9.2.0/appsutil/clone/bin/CloneContext_ 06020557.log

Running Rapid Clone with command:
perl /u01/app/oracle/uatdb/9.2.0/appsutil/clone/bin/adclone.pl java=/u01

/app/oracle/uatdb/9.2.0/appsutil/clone/bin/../jre mode=apply stage=/u01/app/orac le/uatdb/9.2.0/appsutil/clone/bin/..

component=dbTier method=CUSTOM dbctxtg=/u01 /app/oracle/uatdb/9.2.0/appsutil/UAT_apps.xml showProgress contextValidated=true

Beginning database tier Apply - Mon Jun 2 17:57:29 2008
Log file located at /u01/app/oracle/uatdb/9.2.0/appsutil/log/UAT_apps/ApplyDBTie r_06020557.log


Completed Apply...
Mon Jun 2 18:02:27 2008

Beginning APPSDB_UAT registration to central inventory...

ORACLE_HOME NAME : APPSDB_UAT
ORACLE_HOME PATH : /u01/app/oracle/uatdb/9.2.0
Using Inventory location in /etc/oraInst.loc
Log file located at /home/oracle/oraInventory/logs/OracleHomeCloner_06020602.log
ORACLE_HOME /u01/app/oracle/uatdb/9.2.0 was registered successfully.

Starting database listener for UAT:
Running:
/u01/app/oracle/uatdb/9.2.0/appsutil/scripts/UAT_apps/addlnctl.sh start UAT

You are running addlnctl.sh version 115.6

Logfile: /u01/app/oracle/uatdb/9.2.0/appsutil/log/UAT_apps/addlnctl.txt

Starting listener process UAT ...

Listener UAT has already been started.

addlnctl.sh: exiting with status 0

====================================================================
Post Clone for Apps Tier:

Location :/u01/app/apps/uatcomn/clone/bin

[applmgr@apps bin]$ perl adcfgclone.pl appsTier

Enter the APPS password [APPS]: apps

First Creating a new context file for the cloned system.
The program is going to ask you for information about the new system:

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

Do you want to use a virtual hostname for the target node (y/n) [n] ?:

Target system database SID [UAT]:

Target system database server node [apps]:

Target system database domain name [doyen.com]:

Does the target system have more than one application tier server node (y/n) [n] ?:

Is the target system APPL_TOP divided into multiple mount points (y/n) [n] ?:

Target system APPL_TOP mount point [/u01/app/apps/uatappl]:

Target system COMMON_TOP directory [/u01/app/apps/uatcomn]:

Target system 8.0.6 ORACLE_HOME directory [/u01/app/apps/uatora/8.0.6]:

Target system iAS ORACLE_HOME directory [/u01/app/apps/uatora/iAS]:

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

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 number [0-99]: 10

Checking the port pool 10
done: Port Pool 10 is free
Web Listener port is 8010
Complete port information available at /u01/app/apps/uatappl/admin/out/UAT_apps/portpool.lst

UTL_FILE_DIR on database tier consists of the following directories.

1. /usr/tmp
2. /usr/tmp
3. /u01/app/oracle/uatdb/9.2.0/appsutil/outbound/UAT_apps
4. /usr/tmp

Choose a value which will be set as APPLPTMP value on the target node [1]:3

Backing up /u01/app/apps/uatappl/admin/UAT_apps.xml to /u01/app/apps/uatappl/admin/UAT_apps.xml2.bak

Creating the new APPL_TOP Context file from :
/u01/app/apps/uatappl/ad/11.5.0/admin/template/adxmlctx.tmp

The new APPL_TOP context file has been created :
/u01/app/apps/uatappl/admin/UAT_apps.xml

Log file located at /u01/app/apps/uatcomn/clone/bin/CloneContext_06020611.log

Running Rapid Clone with command:
perl /u01/app/apps/uatcomn/clone/bin/adclone.pl java=/u01/app/apps/uatcomn/clone/bin/../jre mode=apply

stage=/u01/app/apps/uatcomn/clone/bin/.. component=appsTier method=CUSTOM appctxtg=/u01/app/apps/uatappl/admin/UAT_apps.xml

showProgress contextValidated=true

/etc/oraInst.loc points to an Inventory that does not exist:
/home/applmgr/oraInventory
Inventory Directory created...
Beginning application tier Apply - Mon Jun 2 18:12:07 2008
Log file located at /u01/app/apps/uatappl/admin/UAT_apps/log/ApplyAppsTier_06020612.log

Completed Apply...

Mon Jun 2 18:21:15 2008

Beginning APPSIAS_UAT registration to central inventory...

ORACLE_HOME NAME : APPSIAS_UAT
ORACLE_HOME PATH : /u01/app/apps/uatora/iAS
Using Inventory location in /etc/oraInst.loc
Log file located at /home/applmgr/oraInventory/logs/OracleHomeCloner_06020621.log
ORACLE_HOME /u01/app/apps/uatora/iAS was registered successfully.

Starting application Services for UAT:
Running:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adstrtal.sh APPS/

You are running adstrtal.sh version 115.14

Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adapcctl.sh start

script returned:
****************************************************

adapcctl.sh version 115.43

Starting Apache Web Server Listener (dedicated HTTP) ...
Starting Apache Web Server Listener (dedicated PLSQL) ...

adapcctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adalnctl.sh start
script returned:
****************************************************

adalnctl.sh version

Checking for FNDFS executable.
Starting listener process APPS_UAT.

adalnctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adcmctl.sh start
script returned:
****************************************************

You are running adcmctl.sh version 115.20

Starting concurrent manager for UAT ...
Starting UAT_0602@UAT Internal Concurrent Manager
Default printer is noprint

adcmctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adfrmctl.sh start
script returned:
****************************************************

You are running adfrmctl.sh version 115.34

Starting forms server for UAT on port 9010.

adfrmctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adrepctl.sh start
script returned:
****************************************************

You are running adrepctl.sh version 115.29

starting Reports Server for UAT on port 7010.

adrepctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adfmcctl.sh start
script returned:
****************************************************

You are running adfmcctl.sh version 115.17

Starting forms load balancing client for UAT.

adfmcctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/adfmsctl.sh start
script returned:
****************************************************

You are running adfmsctl.sh version 115.13

starting forms metrics server for UAT.

adfmsctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/jtffmctl.sh start
script returned:
****************************************************

You are running jtffmctl.sh version 115.16

Validating Fulfillment patch level via /u01/app/apps/uatcomn/java
Fulfillment patch level validated.
Starting Fulfillment Server for UAT on port 9310 ...

jtffmctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/app/apps/uatcomn/admin/scripts/UAT_apps/addisctl.sh start
script returned:
****************************************************

addisctl.sh version 115.14

/u01/app/apps/uatora/8.0.6/vbroker/bin/osagent
Started osagent.
Osagent logs messages to the file /u01/app/apps/uatora/8.0.6/discwb4/util/osagent.log.
Waiting for OAD to start...
Started OAD.
OAD logs messages to the file /u01/app/apps/uatora/8.0.6/discwb4/util/oad.log.
Discoverer Locator Started.
Locator logs messages to the file /u01/app/apps/uatora/8.0.6/discwb4/util/locator.log.

addisctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************

All enabled services for this node are started.
Check logfile /u01/app/apps/uatcomn/admin/log/UAT_apps/06021821.log for details

Exiting with status 0

Note:

By Default all the services are started at the end of that Tier cloning. And while it asks for oraInst.loc mention the old path when we give in database creation. If it asks to run a script then edit and see the script, It may have mentioned the different path. so edit that and save what we have given while running database.

Monday, July 7, 2008

Patches

Types of Patches:
===============

Standalone/Oneoff patches :

This is used to define patch created to fix single/particular problem.

Mini Pack :

This is group of oneoff patches for a particular product like INV, GL, AP and named like 11i.GL.E ( means this group of patches contain fix for 11i GL product (General Ledger till time E is released ) This is cummutative which means it will include 11i.GL.A, 11i.GL.B ….11iGL.D till 11i.GL.E earlier in 10.7 it used to called as patchset.

Family Pack :

Group of mini packs in one family buldeled together is called as family pack. they are usually named as 11i_PF. Few example of falilies are SCM ( 11i.SCM_PF.G ), ATG ( 11i.ATG_PF.H ) _PF indicate Product Family Pack

Maintenance Pack :

Group of family pack together is called as maintenance pack. So if you say your Verison is 11.5.10 then its maintenance pack 10 ( 3rd digit is maintenance pack )

Special Patches
=======================

Consolidated patch:

This is a collection of one-off fixes for a Family Pack or Maintenance Pack; Oracle Applications 11.5.10 Consolidated Update 2 (CU2) is an example of a consolidated patch.

Interoperability patch:

This is a patch that is required for Oracle Applications to function with a newer version of a technology stack component; for example, you would apply an interoperability patch when upgrading the database to version 10g.

NLS patch:

This is a patch that updates language-specific information for multi-language installations.

Rollup patch:

This is a collection of one-off patches that update code levels for particular products.

Legislative patch:

This is a special patch for HR Payroll customers; it contains legislative data for multiple countries.



Drivers – c,d,g & u
============================

1. cXXXXXXX.drv - c stands for copy driver file , used to update the file system with new file versions

2. dXXXXXXX.drv - d stand for Database driver & used to update database level code and objects

3. gXXXXXXX.drv – g stands for generate driver and is used to generate forms, PL/SQL libraries, reports, and menus

4. uXXXXXXX.drv – merged or unified driver which combines the c,d and/or g drivers

Patch Reporting Tools :
=============================

1. Using the adphrept.sql script
2. Executing the patchsets.sh utility
3. Querying the database
4. Using Oracle Application Manager (OAM)



1. Using adphrept.sql
=========================

Location :
========

$AD_TOP/patch/115/sql/adphrept.sql

Generates a XML report [adfilerep.xml]

Execute as

$sqlplus apps/apps_password 1 ALL ALL ALL ALL ALL ALL ALL ALL ALL N N N N N

Copy the xml file to OA_HTML to view in browser

Note : adphrept.sql options
============================

Query_depth 1—Lists details of patches only
2—Lists details of patches and their bug fixes only
3—Lists details of patches, their bug fixes, and bug actions
Bug_number Lists details for one bug number or ALL
Bug_product Lists details for one product or ALL
End_date_from Lists start date for a date range or ALL
End_date_to Lists end date for a date range or ALL
Patchname Lists details for a patch name or ALL
Patchtype Lists details for a patch type or ALL
Level Lists details for a patch level or ALL
Language Lists details for a language or ALL
Appltop Lists details for a specific APPL_TOP or ALL
Limit to forms server Limits the list’s scope (Y/N)
Limit to web server Limits the list’s scope (Y/N)
Limit to node server Limits the list’s scope (Y/N)
Limit to admin server Limits the list’s scope (Y/N)
Only patches that change db Limits the list’s scope (Y/N)

2. Using patchsets.sh
==========================

Note:139684.1
ftp://ftp.oracle.com/support/outgoing/PATCHSET_COMPARE_TOOL/patchsets.sh
$patchsets.sh connect=apps/apps_password

patchsets.sh –h à give options

Sample Output :




3.Querying the Database for Patches
==========================================

SELECT bug_number
FROM ad_bugs
WHERE bug_number IN ('patch_number', 'patch_number', . . .)
ORDER BY bug_number DESC;

Adpatch - option:
==========================

options=noautoconfig

If you are applying number of patches out of which 4-5 patches run autoconfig then use this option & run autoconfig in last patch or manually (This will save your patching timing , first patch performance tip )

compiledb(def) or nocompiledb

Use no compiledb if you have multiple patch then compile database objects in last patch

compilejsp(def) or nocompilejsp

Use no compilejsp if you have multiple patch then compile jsp in last patch

copyportion

Tells adpatch whether to run commands normally found in a copy driver.

databaseporion

Tells adpatch whether to run commands normally found in a database driver.

generateportion

Tells adpatch whether to run commands normally found in a generate driver

hotpatch

Tells AutoPatch to apply a patch regardless of whether the Oracle Applications system is in maintenance mode.


integrity

Tells adpatch whether to perform patch integrity checking, which verifies that the version of each file referenced in a copy action matches the version present in the patch (There are overheads with this)

maintainmrc

Tells adpatch whether to automatically maintain the MRC schema after running actions normally found in the database driver. The MRC schema is only maintained if the MRC feature is enabled

prereq

Tells adpatch whether to perform prerequisite patch checking prior to running patch driver files that contain actions normally found in the copy driver. (With lateset AD patch , default behaviour is changed from prereq to noprereq)

forcecopy

The forcecopy command copies the files in a patch to the Applications file system without comparing the version number of the patch files with existing files


About Maintenance Mode:
=======================

As of ADI – Maintenance Mode must be enabled.

To Enable :
========

adadmin

$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE

To Disable:
========

adadmin

$AD_TOP/patch/115/sql/adsetmmd.sql DISABLE

Note :

We can also go to adadmin and follow the option to enable and disable Maintanance Mode.

adpatch - options

Option Purpose

novalidate Prevents adpatch from validating all schema connections
noprereq Prevents adpatch from checking the existence of prerequisite patches
nocompiledb Prevents adpatch from compiling database objects
nocompilejsp Prevents adpatch from compiling JSP objects
noautoconfig Prevents adpatch from running autoconfig after the patch has completed
nogenerateportion Prevents adpatch from compiling forms, menus, and plls
hidepw Prevents passwords from being displayed in log files
hotpatch Allows adpatch to be run when the instance is not in maintenance mode

Eg: adpatch options=nocompiledb,novalidate


AD Merge :

This utility is to merge the patch inorder to reduce the timings

Applying a group of similar patches

Similar patches unbundled in same folder
./admrgpch /source_dir /target_dir

Generates
u_merged.drv
admrgpch.log

Note 228779.1, “How to Merge Patches Using admrgpch.”


AD Control :
==========

This Utility is used when we are running the patch, we can see all the details about the patch . ie) All about workers etc.,
This will work till the both tables drop.

That is FND_INSTALL_PROCESSES and
AD_DEFFERED_JOBS

These are the two tables created while the patch starts and it will be dropped when the patch is applied or completed.
Note : Adctrl options about workers will works till the above two tables is in use .

Command Used : adctrl



Note : While the patch is running and if it fails in the middle and if we want to ignore it there is also a 8th option but is will not be listed above. The 8th option is

8. Enter the worker number(s)/range(s) (or) all for all workers.

These is to kill that particular worker. (to ignore)


DB Patches:
==========
Eg: patch 2617419

$export PATH=$PATH:/[path_of_2617419]/Opatch
$export PERL5LIB=[path_of_PERL]/lib
$opatch lsinventory
$opatch apply

Note :

If the opatch fails :

There may be a patch_locked file located under the hidden directory $ORACLE_HOME/.patch_storage.

The opatch utility may not be executed until the patch_locked file is removed.

Creating a Custom Application in Applications 11i

Custom Applications are required if you are creating new forms, reports, etc.

This allows you to segregate your custom written files from the standard seeded functionality that Oracle Applications provide.

Customizations can therefore be preserved when applying patches or upgrades to your environment.


1) Make the directory structure for your custom application files.
cd $APPL_TOP
mkdir mz
mkdir mz/11.5.0
mkdir mz/11.5.0/admin
mkdir mz/11.5.0/admin/sql
mkdir mz/11.5.0/admin/odf
mkdir mz/11.5.0/sql
mkdir mz/11.5.0/bin
mkdir mz/11.5.0/reports
mkdir mz/11.5.0/reports/US
mkdir mz/11.5.0/forms
mkdir mz/11.5.0/forms/US
mkdir mz/11.5.0/$APPLLIB
mkdir mz/11.5.0/$APPLOUT
mkdir mz/11.5.0/$APPLLOG

2) Add the custom module into the environment

Apply ADX.E.1 and add the entry to topfile.txt as a standard product top entry (follow the existing model in the file)

Customised environment variables can be added to AutoConfig by using the filename specificed by s_custom_file, which is then called from the APPSORA.env file.

If using Forms Listener Servlet, you may also need to add $CUSTOM_TOP to formsservlet.ini in $APACHE_TOP/Jserv/etc


3) Create new tablespace for database objects
create tablespace MZ datafile '/emea/oracle/visuk09/visuk09data/mz.dbf' size 10M default storage(initial 10k next 10k)

4) Create schema
create user mz identified by mz
default tablespace mz
temporary tablespace temp
quota unlimited on mz
quota unlimited on temp;
grant connect, resource to mz;

5) Register your Oracle Schema.
Login to Applications with System Administrator responsibility
Navigate to Application-->Register
Application = MZ Custom
Short Name = MZ
Basepath = MZ_TOP
Description = MZ Custom Application

6) Register Oracle User
Naviate to Security-->Oracle-->Register
Database User Name = MZ
Password = MZ
Privilege = Enabled
Install Group = 0
Description = MZ Custom Application User

7) Add Application to a Data Group
Navigate to Security-->Oracle-->DataGroup
Data Group = MZGroup
Description = MZ Custom Data Group
Click on "Copy Applications from" and pick Standard data Group, then add the following entry.

Application = MZ Custom
Oracle ID = APPS
Description = MZ Custom Application

8) Create custom request group

This will act as a placeholder for any custom reports we wish to make available for the Custom Responsibility (which is defined at a later stage)
Navigate to Security-->responsbility-->Request
Group = MZ Request Group
Application = MZ Custom
Code = MZ
Description = MZ Custom Requests
We will not define any requests to add to the group at this stage, but you can add some now if required.

9) Create custom menu

This will act as a placeholder for any menu items we wish to make available for the Custom Responsibility (which is defined at a later stage) We will create two menus, one for Core Applications and one for Self Service.
Navigate to Application-->Menu
Menu = MZ_CUSTOM_MENU
User Menu Name = MZ Custom Application
Menu Type =
Description = MZ Custom Application Menu
Seq = 100
Prompt = View Requests
Submenu =
Function = View All Concurrent Requests
Description = View Requests

Seq = 110
Prompt = Run Requests
Submenu =
Function = Requests: Submit
Description = Submit Requests

Menu = MZ_CUSTOM_MENU_SSWA
User Menu Name = MZ Custom Application SSWA
Menu Type =
Description = MZ Custom Application Menu for SSWA


10) Create new responsibility. One for Core Applications and One for Self Service (SSWA)

Navigate to Security-->Responsibility-->Define
Responsibility Name = MZ Custom
Application = MZ Custom
Responsibility Key = MZCUSTOM
Description = MZ Custom Responsibility
Available From = Oracle Applications
Data Group Name = mzGroup
Data Group Application = MZ Custom
Menu = MZ Custom Application
Request Group Name = MZ Request Group

Responsibility Name = MZ Custom SSWA
Application = MZ Custom
Responsibility Key = MZCUSTOMSSWA
Description = MZ Custom Responsibility SSWA
Available From = Oracle Self Service Web Applications
Data Group Name = mzGroup
Data Group Application = MZ Custom
Menu = MZ Custom Application SSWA
Request Group Name = MZ Request Group

11) Add responsibility to user
Navigate to Security-->User-->Define
Add MZ Custom responsibility to users as required.

12) Other considerations
You are now ready to create your database Objects, custom Reports, Forms, Packages, etc

Create the source code files in the MZ_TOP directory appropriate for the type of object.
For example forms would be located in $MZ_TOP/forms/US or package source code in $MZ_TOP/admin/sql for example.

Database Objects, such as tables, indexes and sequences should be created in the MZ schema, then you need to

a) Grant all privilege from each custom data object to the APPS schema.
For example : logged in as MZ user
grant all privileges on myTable to apps;

b) Create a synonym in APPS for each custom data object
For example : logged in as APPS user
create synonym myTable for mz.myTable;

Other database objects, such as views and packages should be created directly in the APPS schema.


RELATED DOCUMENTS
-----------------
Oracle Applications Release 11i Developers Guide.
Oracle Applications Release 11i System Administrators Guide.

Additional Search Words
-----------------------
11i custom customisation core apps

Sunday, June 8, 2008

Apps 11i Kernel Parameters

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.core_uses_pid = 1
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144

Saturday, April 19, 2008

Startup and Shutdown Procedures for Apps

Startup and Shutdown Procedures for Oracle Apps:
=================================

Order of StartUp of Services Should be as follows :

1. First DB Listener.
2. Database.
3. Application Tier Services.

Order of ShutDown of Services Should be as follows:
====================================

1. First Application Tier Services.
2. Database.
3. DB Listener.
Database Startup and Shutdown Scripts and its Locations :
Location of the script :
$ORACLE_HOME /appsutil/scripts /SID_hostname/

Start up script for Db Tier:
==================
addbctl.sh start - For database startup.
addlnctl.sh start (instance name) - for database listner startup.

Note : SID_hostname is called as a CONTEXT_NAME.

Stop script for Db Tier:
================

Location (same as given above and the script is also same) but :

addbctl.sh stop - For database shutdown.
addlnctl.sh stop (instance name) - for database listener shutdown.

Apps Tier Startup and Shutdown Scripts and its Locations :
=========================================
Location of the script :
===============

OAD_TOP/admin/scripts/ SID_hostname/

Note : COMN_TOP is called as OAD_TOP

Start up script for Db Tier :
=======================

adalnctl.sh start - Apps Listener Control Script
adapcctl.sh start apps/apps - Apache/Web Server Control Script
adcmctl.sh start apps/apps - Concurrent Manager Control Script
addisctl.sh start - Discoverer Control Script
adfrmctl.sh start - Forms server Control Script
adrepctl.sh start - Report Server Control Script

These are the the individual components to be started and the scripts for it. Instead of starting all this script individually there is a script which has a power to start all the above components in one stretch and to stop also. So instead of giving the above things individually we can use the following scripts to start and stop. This script is also in the same location and the script name as follows:

adstrtall.sh apps/apps - Start All Middle/Application Tier.
adstpall.sh apps/apps - All Middle/Application Tier.
Note:
(apps/apps) - This is application user and passwd.

Note : The main thing to look up in this topic is that the procedure should be followed correctly as mentioned above in the topic ORDER OF STARTUP and SHUTDOWN.

Monday, April 14, 2008

Architecture of Oracle Apps 11i


Basic Things to know in Oracle apps 11i:

Tier is a logical grouping of services, The services can be in a single machine or spread across more than one machine.

Node is referred as Physical Machine. Each Tier may consist of one or more node and each node can have more then one Tier.

By Default oracle application is built on Three Tier Architecture. Let us see that in Detail.

1. Desktop Tier :
This is the First Tier from where the client machine connects to the server via HTML based (known as self serviced) or via java based (using jinitiator) for Form based access.

2. Application Tier (Middle Tier):

This is called as a Middle Tier or the second Tier. This Tier consists of of WebServer, Forms server, Report server, Concurrent processing, Discoverer and Admin Server.

Note: This is Not a must that all the above server should be in the same node, It can be spread in different nodes.

3.Database Tier:

This is the Third node and most important node called as the Database node where all the changes and other things what we are doing in the front end from the client node is processed via middle Tier and comes to the database and stored here.

As per the usage, we are giving the naming conventions as Different Tiers. To be in more clear, The Front end (end users) is called as a Desktop Tier or First Tier, and the information passed from the end users are get processed where it is called as a middle Tier (has various process and components to be covered) and the final data or the processed data is Database is called as the Third Tier.

Oracle Applications Overview:
======================

An Oracle Applications system physically consists of :

A) A File system containing the following:

- Forms
- Reports
- Concurrent Programs
- Programs and Scripts
- HTML and Java

B) An Database Consists of:

- Data Objects(Data Files)
- Code Objects.


In Brief About Oracle Applications:
=========================

A) A File System:
=============
- Forms That allow interactive entry and updating of data.
- Reports that allow formatted documentation and display of data.
- Concurrent programs that provide high volume, Non-interactive,Update of Data.
-HTML and Java that perform certain user interface and business functions.

B) An Database (Oracle 9i or 10g).
==========================
- Data Objects, Such as tables,Indexes used to store Customer data.
- Code Objects, Such as PL/SQL stored procedures and triggers for performing database processing, Views,Grants and Synonyms.

Versions To see and To Know Here is Mainly for the Three things:
===========================================

Product Version

1. Oracle Database (9i or 10g) 9.2.0.8 or 10.2.0.1.0

2. Developer 6i Patch set 16 or 18

3. Oracle HTTP Server powered by Apache 1.3.19

Note : There are sample Versions to look in But there are many versions are there and the Developer 6i includes Forms,Reports etc..ie) what are all used by Developers (As per my Assumption).