This is from a presentation by John Stouffer of Solutionbeacon.
• Disk Space
- 25GB for the software and database
- 10GB for the software staging areas
- 10-25GB for patches, log/out files,archives, disk backups, temporary files, etc.
- RAID is necessary
• Typical ERP Server Configuration
- Combined Single Server
– 4CPU, 4GB RAM (Scalable)
– 50 GB disk effective
Memory
• Oracle minimum – 8MB/user
• Real World Recommendation
- 15MB for every active user
- 15MB for concurrent manager workers
- 20MB for database background processes
- 500MB SGA (pinning packages/sequences)
•CPU
• Oracle minimum – 70 users/CPU
• Real World Recommendation
- 15 Active Users/CPU (super users)
- 50 Logged Users/CPU
- 1 CPU Dedicated – Database and Application Processes (DB, Forms, Apache, Concurrent
Managers
Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps
Friday, August 3, 2007
Analyze what's happening in concurrent requests
A concurrent request is a process or set of processes which call a concurrent prgram. It is important for an Apps DBA to know what the most critical concurrent processes do on code level. That means opening the sql files or unix shell scripts and understanding what is happening in a concurrent program. If you understand the program on a high level, it will help you in troubleshooting any issues with concurrent requests which call that program. An exmaple of a high level knowledge is this: The program checks some conditions, with select queries, then it loads some data thru SQL*Loader which goes to some interface table. Then it further checks some more conditions and inserts data in staging tables. If you know this much, without actually going into further details, it should be enough to give you clues in case a request calling the program seems to have hung.
Some Metalink Notes which have scripts for analyzing pending requests and analyzing a single request:
134033.1 ANALYZEPENDING.SQL - Analyze all Pending Requests
134035.1 ANALYZEREQ.SQL - Detailed Analysis of One Concurrent Request (Release 11 and up)
Some Metalink Notes which have scripts for analyzing pending requests and analyzing a single request:
134033.1 ANALYZEPENDING.SQL - Analyze all Pending Requests
134035.1 ANALYZEREQ.SQL - Detailed Analysis of One Concurrent Request (Release 11 and up)
Thursday, August 2, 2007
Workflow performance
Refer to these metalink notes
277124.1 FAQ on Purging Oracle Workflow Data
148678.1 Resolving Workflow Performance Issues
132254.1 Speeding Up And Purging Workflow
144806.1 A Detailed Approach To Purging Oracle Workflow Runtime Data
298550.1 Troubleshooting Workflow Data Growth Issues
165316.1 bde_wf_data.sql - Query Workflow Runtime Data That Is Eligible For
277124.1 FAQ on Purging Oracle Workflow Data
148678.1 Resolving Workflow Performance Issues
132254.1 Speeding Up And Purging Workflow
144806.1 A Detailed Approach To Purging Oracle Workflow Runtime Data
298550.1 Troubleshooting Workflow Data Growth Issues
165316.1 bde_wf_data.sql - Query Workflow Runtime Data That Is Eligible For
Which files are modified by FNDCPASS ?
Sadiq asked me this question: Which files are modified by FNDCPASS ?
FNDCPASS is a C executable to change Application, Oracle User and APPLSYS password
The answer is given in metalink note 159244.1 which gives this list. Here's a copy paste from the relevant section of that note:
VERY IMPORTANT!!
When changing the password for APPS it is important to manually change the APPS password in the following files as well as necessary:
1. $ORACLE_HOME/listener/cfg/wdbsvr.app file as well. (Otherwise users will not be able to login to the Personal Home Page or Self-service web apps.) This may also be necessary in the $IAS_ORACLE_HOME\Apache\modplsql\cfg\wdbsvr.app file
2. Workflow Notification Mailer - $FND_TOP/resource/wfmail.cfg
3. The concurrrent manager start script.
4. $OA_HTML/bin/appsweb.cfg
5. $AD_TOP/admin/template/CGIcmd.dat may contain the password if it is being used. (Please refer to Note 159033.1 How to Setup Oracle Reports in Portal to Use
CGICMD.DAT File)
6. If you instance is Multi-node and Autoconfig enabled, it may be necessary to invoke Autoconfig to implement the above changes.
For additional information, here's a cust paste of the README file included with patch 1685689 (released in March 15, 2001) which contains FNDCPASS utility.
Usage
=====
FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME
FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1
FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
Standard concurrent program parameters with password to the system account where we can do alter user when we need to change the password for an Oracle user. The other arguments are explained below:
Functionality
=============
*** FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME
This is to change applsys password. When specifying SYSTEM token, FNDCPASS expects the next argument are the applsys name and the new password.
(1) applsys validation. (make sure APPLSYS name is correct)
(2) re-encrypt all password in FND_USER
(3) re-encrypt all password in FND_ORACLE_USERID
(4) update applsys's password in FND_ORACLE_USERID table.
(5) Given the fact that everything with read_only_flag in the set (E, K, M, O, U) in FND_ORACLE_USERID table must always have the same password, we update these password as well as the applsys' password. For example, the apps's password will be
updated when changing applsys password.
(6) Alter user to change the oracle password for the above oracle users.
*** FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1
This is to change an oracle user password. Changing GL password results:
(1) update GL's password in FND_ORACLE_USERID table. The new password is re-encrypted with the current applsys password.
If GL does not exists, step (2) below does not happen. Message for invalid oracle user is written in the log file.
(2) alter user to change GL's password.
*** FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
This is to change an application user password. Changing VISION password results:
(1) update VISION's password in FND_USER table. The new password is re-encrypted with the current applsys password.
If VISION does not exist, message for invalid application user is written in the log file.
No products affected by the patch
No Prereq
FNDCPASS is a C executable to change Application, Oracle User and APPLSYS password
The answer is given in metalink note 159244.1 which gives this list. Here's a copy paste from the relevant section of that note:
VERY IMPORTANT!!
When changing the password for APPS it is important to manually change the APPS password in the following files as well as necessary:
1. $ORACLE_HOME/listener/cfg/wdbsvr.app file as well. (Otherwise users will not be able to login to the Personal Home Page or Self-service web apps.) This may also be necessary in the $IAS_ORACLE_HOME\Apache\modplsql\cfg\wdbsvr.app file
2. Workflow Notification Mailer - $FND_TOP/resource/wfmail.cfg
3. The concurrrent manager start script.
4. $OA_HTML/bin/appsweb.cfg
5. $AD_TOP/admin/template/CGIcmd.dat may contain the password if it is being used. (Please refer to Note 159033.1 How to Setup Oracle Reports in Portal to Use
CGICMD.DAT File)
6. If you instance is Multi-node and Autoconfig enabled, it may be necessary to invoke Autoconfig to implement the above changes.
For additional information, here's a cust paste of the README file included with patch 1685689 (released in March 15, 2001) which contains FNDCPASS utility.
Usage
=====
FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME
FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1
FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
Standard concurrent program parameters with password to the system account where we can do alter user when we need to change the password for an Oracle user. The other arguments are explained below:
Functionality
=============
*** FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME
This is to change applsys password. When specifying SYSTEM token, FNDCPASS expects the next argument are the applsys name and the new password.
(1) applsys validation. (make sure APPLSYS name is correct)
(2) re-encrypt all password in FND_USER
(3) re-encrypt all password in FND_ORACLE_USERID
(4) update applsys's password in FND_ORACLE_USERID table.
(5) Given the fact that everything with read_only_flag in the set (E, K, M, O, U) in FND_ORACLE_USERID table must always have the same password, we update these password as well as the applsys' password. For example, the apps's password will be
updated when changing applsys password.
(6) Alter user to change the oracle password for the above oracle users.
*** FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1
This is to change an oracle user password. Changing GL password results:
(1) update GL's password in FND_ORACLE_USERID table. The new password is re-encrypted with the current applsys password.
If GL does not exists, step (2) below does not happen. Message for invalid oracle user is written in the log file.
(2) alter user to change GL's password.
*** FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME
This is to change an application user password. Changing VISION password results:
(1) update VISION's password in FND_USER table. The new password is re-encrypted with the current applsys password.
If VISION does not exist, message for invalid application user is written in the log file.
No products affected by the patch
No Prereq
How to find the pid of a process which is using a specific port
The lsof unix command can give you the detail. lsof stands for list of open files. lsof command lists information about files opened by
An open file may be a regular file, a directory, a block special file, a character special file, an executing text reference, a library, a stream or a network file (Internet socket, NFS file or UNIX domain socket.) A specific file or
all the files in a file system may be selected by path.
In Solaris lsof is present in /usr/local/bin/lsof usually.
lsof | grep will return an output like this one:
lsof
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Good document for finding out the same information on Linux is: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/security-guide/s1-server-ports.html
For HP-UX, lsof is not part of the standard install. You can download it from:
http://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/binaries/hpux/
Solaris 10 has issues with lsof version 4.77. Ensure that you are using lsof version 4.8 on Solaris 10 to get correct results.
If you don't have lsof on Solaris this My Oracle Support (erstwhile Metalink) Article has a script
When "lsof" Utility Is Not Installed, How To Determine Which Process is Using a TCP Port on Sun Solaris Platforms? [ID 839919.1]
This gives a script get_port_pid.sh:
An open file may be a regular file, a directory, a block special file, a character special file, an executing text reference, a library, a stream or a network file (Internet socket, NFS file or UNIX domain socket.) A specific file or
all the files in a file system may be selected by path.
In Solaris lsof is present in /usr/local/bin/lsof usually.
lsof | grep
lsof
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Good document for finding out the same information on Linux is: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/security-guide/s1-server-ports.html
For HP-UX, lsof is not part of the standard install. You can download it from:
http://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/binaries/hpux/
#!/bin/bash
# Get the process which listens on port
# $1 is the port we are looking for
if [ $# -lt 1 ]
then
echo "Please provide a port number parameter for this script"
echo "e.g. $0 22"
exit
fi
echo "Greping for your port, please be patient (CTRL+C breaks) ... "
for i in `ls /proc`
do
[ -d /proc/$i ] && pfiles $i | grep AF_INET | grep $1
if [ $? -eq 0 ]
then
echo Is owned by pid $i
fi
done
Clone sanity checklist
Clone Sanity Checks
===================
opatch lsinventory on iAS,806 and 920 homes should succeed.
Metalink Note: 332698.1 :
Check whether
1. $ORACLE_HOME/jdk/bin/jar file is present
2. $ORACLE_HOME/jdk/bin/jar file has execute permission
3. $ORACLE_HOME/jdk/bin/jar file is an invalid symbolic link
aoljtest.jsp
Check whether jinitiator correctly downloads and installs
Check whether forms interface launches correctly from Self Service
Check whether “Active Responsibilities” concurrent request runs correctly and produces output
Use FNDCPASS to change passwords of AK, JTF and ABM oracle users, and SYSADMIN application user.
Run adconfig.sh and make sure it runs without errors
Adadmin Grants and synonyms
Compile apps schema
Take a list of invalids before starting activity. Select owner,object_type,object_name from dba_objects where status=’INVALID’;
Look for 0 byte files in 806, 920, java homes. (Shows that the mount ran out of disk space while copying files from source)
Check the wordsize of files in RDBMS with unix file command, e.g. file $ORACLE_HOME/bin/oracle
utl_file_dir parameter in init.ora or spfile should have directories which exist and are writable both by applmgr and oracle users
===================
opatch lsinventory on iAS,806 and 920 homes should succeed.
Metalink Note: 332698.1 :
Check whether
1. $ORACLE_HOME/jdk/bin/jar file is present
2. $ORACLE_HOME/jdk/bin/jar file has execute permission
3. $ORACLE_HOME/jdk/bin/jar file is an invalid symbolic link
aoljtest.jsp
Check whether jinitiator correctly downloads and installs
Check whether forms interface launches correctly from Self Service
Check whether “Active Responsibilities” concurrent request runs correctly and produces output
Use FNDCPASS to change passwords of AK, JTF and ABM oracle users, and SYSADMIN application user.
Run adconfig.sh and make sure it runs without errors
Adadmin Grants and synonyms
Compile apps schema
Take a list of invalids before starting activity. Select owner,object_type,object_name from dba_objects where status=’INVALID’;
Look for 0 byte files in 806, 920, java homes. (Shows that the mount ran out of disk space while copying files from source)
Check the wordsize of files in RDBMS with unix file command, e.g. file $ORACLE_HOME/bin/oracle
utl_file_dir parameter in init.ora or spfile should have directories which exist and are writable both by applmgr and oracle users
Subscribe to:
Posts (Atom)