Latest Updates

Post Top Ad

04 October, 2012

Oracle Appls 11i Architecture




                                                            Oracle Appls 11i Architecture

This Topic is quite important and I recommend you to go through this thoroughly.
First I want to discuss terminology which you will encounter in this site & in most of Oracle Documentation.
•  Server - is a process or group of processes and provides a particular functionality/service For example, Database Server listen and process database requests, similarly Web Server listens for and processes HTTP requests.
•  Tier - is a logical grouping of services, may be on single machine or spread across more than one physical machine. For Example, Middle Tier in Oracle apps consist Form,Web,Report...Services. Forms & Report can be one machine 1 & Web Server can be on machine 2, still they will be part of same tier called as Application Tier or Middle Tier.
•  Node - is referred as Machine, Each tier may consist of one or more node and each node can potentially have more than one tier.
Oracle Applications/E-Business Suite is built on three tier Architecture with first Desktop Tier ic client machines accessing applications via browser(HTML based Self service applications) or Java Applet(Jinitiator) for Form based interface.
Second is Application Tier also called as middle tier consists of WebServer Forms, Reports, Concurrent processing, Discoverer and Admin Server. I suppose its known as Middle tier because it lies between our desktop & third tier called database tier.
Third is Database Tier contain Orale database server which store all your application data.
Do you want to know how Request Flow in apps .
If you want to be good apps trouble shooter, you should know how request flow in apps across various components and which service or part of service fulfill that request so that you can focus in particular component.
•  User makes a request from browser by typing URL like http://hostname:port , here port is WebServer Listen Port. Request hit to WebServer (these requests are recorded in access_logs under Apache Web Server.)
•  Webserver checks that with http header request there is no cookie attached (Cookie is message given by WebServer to Web Browser to identify client) Webserver identifies that user is logging first time & it passes login page to User . If Apps is configured to use 10G AS with SSO (Single Sign-On Server) SSO authentication page is sent back to client browser.
•  User types his Username Password in login window & clicks submit button.
•  Webserver checks that username and passwords need to authenticate against database FND_USER (or OID/AD incase of SSO configuration) table, so it needs some user to connect to database. You know now why GUEST/ORACLE is used in applications.
•  Once user is authenticated its check against FND_XXXX (FND tables) for Authorization about users responsibilities & assigned responsibilities are presented back to user.
•  Now these responsibilities are of two type Self Services(served by Jserv/Servlets) or Core Applications served by Forms Server .
•  If this is Core responsibility , Apache transfers request to Forms Listener and dedicated connection establish between client browser & form server
•  If User selected Self Service Responsibility like iProcurement, iRecruitement.., Apache forwards request to mod_jserv and request is fullfilled by jserv_component. Have you ever noticed why webserver donot ask client to login again until session timeout ??( I know you will say its because of cookies as User have valid cookies , try deleting cookies from browser & see Oracle Apache asks you to relogin .
•  When your webserver tries to connect to database for plsql or any other type of connection it asks mod_pls to fulfill request.
•  Users submits his requests for batch processing or somthing else ( Gather Stats done by Sysadmins or Apps DBA's) these kind of requests are fullfilled by Concurrent Manager.





•  When user want to see reports of all these things request is being forwarded to Reports Server . You as Sysadmin or Oracle Apps DBA need not to worry how this request transmission happens from one service to another , this is transparent to you me or User but its quite important to understand it as a process.


                                                     Oracle Apps Patching

Patching is one of Jobs Apps DBA perform very frequently , so you should be clear with patch basics first including terminology. Please follow Next Page link at bottom of this page to go to next page of patching. As for Database patch you apply using opatch ,similarly for Apps patch you will use adpatch.Utility & executables related to patching fall under product AD also called as application dba product. I will walk you through oracle apps 11i patching with series of questions which will help you in understand oracle apps 11i patching.
 What is patch ?
Patch is program (set of instrcutions) to fix a particular problem or enhance/ add a particular feature in existing program/product/software.
 


  What is name of utility to apply patch in Oracle Application 11i ?
In Oracle Applications 11i to apply database patch you use opatch where as in order to apply applications patch you use ad utility adpatch
 What are various types of Oracle Apps Patch ?
These are major classification of oracle apps patch
•  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

Q. How to find Apps Patchset level in 11i ?
You can use shell script developed called patchsets.sh. Download it from
ftp://oracle-ftp.oracle.com/apps/patchsets/PATCHSET_COMPARE_TOOL/patchsets.sh
Usage: patchsets.sh connect=apps/pw [htmlout=file_name]
Typical Output : Applied Patchsets that Match ARU:
APPLIED PATCHSETS
Prod Patchset Bug RELEASED Release Status Distribution
=================================================
abm 11i.ABM.D 1741310 31-MAY-01 Patchset Superseded By_Dev
ad 11i.AD.A 1351004 07-OCT-00 Patchset Superseded By_Metalink
ad 11i.AD.C 1475426 19-JAN-01 Patchset Superseded By_Metalink
To know more about this utility check Metalink Note # 139684.1 Oracle Applications Current Patchset Comparison Utility - patchsets.sh
 


 
Q. What is family pack, Minipack, one off and Maintenance pack ?
Patching is one of Jobs Apps DBA perform very frequently , so you should be clear with patch basics first including terminology. Please follow Next Page link at bottom of this page to go to next page of patching. As for Database patch you apply using opatch ,similarly for Apps patch you will use adpatch.Utility & executables related to patching fall under product AD also called as application dba product. I will walk you through oracle apps 11i patching with series of questions which will help you in understand oracle apps 11i patching.
 What is patch ?
Patch is program (set of instrcutions) to fix a particular problem or enhance/ add a particular feature in existing program/product/software.
 


  What is name of utility to apply patch in Oracle Application 11i ?
In Oracle Applications 11i to apply database patch you use opatch where as in order to apply applications patch you use ad utility adpatch
 What are various types of Oracle Apps Patch ?
These are major classification of oracle apps patch
•  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 )
Q. How to find Apps Patchset level in 11i ?
You can use shell script developed called patchsets.sh. Download it from
ftp://oracle-ftp.oracle.com/apps/patchsets/PATCHSET_COMPARE_TOOL/patchsets.sh
Usage: patchsets.sh connect=apps/pw [htmlout=file_name]
Typical Output : Applied Patchsets that Match ARU:
APPLIED PATCHSETS
Prod Patchset Bug RELEASED Release Status Distribution
=================================================
abm 11i.ABM.D 1741310 31-MAY-01 Patchset Superseded By_Dev
ad 11i.AD.A 1351004 07-OCT-00 Patchset Superseded By_Metalink
ad 11i.AD.C 1475426 19-JAN-01 Patchset Superseded By_Metalink
To know more about this utility check Metalink Note # 139684.1 Oracle Applications Current Patchset Comparison Utility - patchsets.sh





Q. How to find Apps Version in 11i ?
Run following SQL from apps user ;
SQL> select RELEASE_NAME from fnd_product_groups;
You should see output like
RELEASE_NAME
-----------------------
11.5.10.2
Which means you are on Apps Version 11.5.10.2
 Q. How to check if a patch is applied or not ?
Patch information in 11i is stored in AD_BUGS & AD_APPLIED_PATCHES table . You can query like
SQL> select bug_number from AD_BUGS where bug_number ='&patch_no';
Alternatively you can check patch information from OAM (Oracle Application Manager).
 


  Q. Where to find adpatch log files ?
Patch log files will be in directory $APPL_TOP/admin/$SID/log
like adpatchXXX.log ( file name you mentioned while patching ), adworkXXX.log for worker log files,













































                                           Oracle Apps 11i Concurrent Manager

Concurrent Manager as name suggest is Manager which manages your concurrent requests in Oracle Apps 11i. You can assign single request or batch job & let concurrent manager manage these request. Without going to technical definition & explanation about them I will go straight to the point which you might be interested in looking as Sysadmin or Oracle Apps DBA i.e. from startup/shutdown to configuration then finally to tuning. So tie up your belt & get ready for ride to CM.
 How to Start/Stop Concurrent Manager ? In Oracle Applications 11i as you might already be aware that all startup shutdown scripts in 11i(11.5.10) are in $OAD_TOP/admin/script/$CONTEXT_NAME where $OAD_TOP is also called as $COMMON_TOP and $CONTEXT_NAME is your SID_hostname , lets say your SID or Instance Name is VISION and its on machine with name machine1 so your CONTEXT_NAME will be VISION_machine1. So script to start/stop concurrent manager is adcmctl.sh where ad (In my view) is application dba , cm is concurrent manager & ctl means control. Well if you really want to explore more I'll suggest you open this file & go through it . If you open this script you will see syntax to run it in start or stop mode so I am not going to spoon feed you by giving syntax. When you run adcmctl.sh it records execution of this command in text file with name adcmctl.txt at directory $COMMON_TOP/admin/log/$CONTEXT_NAME. adcmctl.sh called another script startmgr which in turn calls batchmgr in $FND_TOP/bin and this is actual file which fire up Internal Concurrent Manager Process (Open these two files as they are text file and read content in these files.
Lets check important parameter in this file
•  DISPLAY Set it to some valid XServer , if this is not set properly your reports display will fail (specially one with PDF or Bar code dislay)
•  DIAG_PARAM Diagnosis parameter it will take value Y or N with default N, If you encounter some error while starting Concurrent Manager you change this to Y and then extra logging will be enabled then check Concurrent Manager log file.
•  CONCSUB stands for CONC(Concurrent) SUB(Submit) , used to submit concurrent request like shut down concurrent manager.

Concurrent Manager as name suggest is Manager which manages your concurrent requests in Oracle Apps 11i. You can assign single request or batch job & let concurrent manager manage these request. Without going to technical definition & explanation about them I will go straight to the point which you might be interested in looking as Sysadmin or Oracle Apps DBA i.e. from startup/shutdown to configuration then finally to tuning. So tie up your belt & get ready for ride to CM.
 How to Start/Stop Concurrent Manager ? In Oracle Applications 11i as you might already be aware that all startup shutdown scripts in 11i(11.5.10) are in $OAD_TOP/admin/script/$CONTEXT_NAME where $OAD_TOP is also called as $COMMON_TOP and $CONTEXT_NAME is your SID_hostname , lets say your SID or Instance Name is VISION and its on machine with name machine1 so your CONTEXT_NAME will be VISION_machine1. So script to start/stop concurrent manager is adcmctl.sh where ad (In my view) is application dba , cm is concurrent manager & ctl means control. Well if you really want to explore more I'll suggest you open this file & go through it . If you open this script you will see syntax to run it in start or stop mode so I am not going to spoon feed you by giving syntax. When you run adcmctl.sh it records execution of this command in text file with name adcmctl.txt at directory $COMMON_TOP/admin/log/$CONTEXT_NAME. adcmctl.sh called another script startmgr which in turn calls batchmgr in $FND_TOP/bin and this is actual file which fire up Internal Concurrent Manager Process (Open these two files as they are text file and read content in these files.
Lets check important parameter in this file
•  DISPLAY Set it to some valid XServer , if this is not set properly your reports display will fail (specially one with PDF or Bar code dislay)


•  DIAG_PARAM Diagnosis parameter it will take value Y or N with default N, If you encounter some error while starting Concurrent Manager you change this to Y and then extra logging will be enabled then check Concurrent Manager log file.

•  CONCSUB stands for CONC(Concurrent) SUB(Submit) , used to submit concurrent request like shut down concurrent manager.
•  SLEEP holds the number of seconds that the manager should wait between checks for new requests.
•  MGRNAME is the name of the manager for locking and log purposes. So you can find if this is icm(Internal Concurrent Manager), sm(Service Manager)
•  RESTART is set to N if the manager should not restart itself after a crash. Otherwise, it is an integer number of minutes. The manager will attempt a restart after an abnormal termination if the past invocation lasted for at least RESTART minutes.
•  PMON is the duration of time between process monitor checks (checks for failed workers). The unit of time is concurrent manager iterations (request table checks). Default Value is 20 .
•  QUESIZ is the duration of time between worker quantity checks (checks for number of active workers). The unit of time is process monitor checks.
Please pay attention to PMON, QUESIZ and SLEEP as these will be used during Concurrent Manager Tuning.
Where is Concurrent Manager Node ? If you don't know where is your CM here are few ways to find your it .
•  SQLPLUS> select node_name from apps.fnd_nodes where support_cp='Y';
•  In context file (SID_hostname.xml ) under $APPL_TOP/admin , check for variable < TIER_NODE oa_var="s_isConc" >YES< / TIER_NODE>, YES means this is Concurrent Manager Node.
•  Check for Administer Concurrent Manager request under SYSADMIN responsibility.
•  "ps -ef | grep FNDLIBR" under application User on all nodes where FND(Foundation) LIBR(Library) is executable.
How to troubleshoot Concurrent Manager ? If as an Oracle Apps DBA or Sysadmin you started concurrent manager and encountered any error message, first place to start looking is log file of Internal Concurrent Manager . Log files are very critical in understanding or finding any problem. but where is my concurrent manager log file ? Default log file location for Apps Concurrent Manager is $APPLCSF/$APPLLOG/ and file name format is SID_MMDD.mgr (This is specific to 11i 11.5.10 and may very depedning on your Apps Version) where APPLCSF & APPLLOG are environment variables (If APPLCSF is not set while starting Concurrent Manager , logs will go to $FND_TOP/$APPLLOG), log file name format is your SID_ MM (Month on which CM last started) DD (Date on which CM last started) .mgr (Manager)
From where its ICM ( Internal Concurrent Manager) picking SID_MMDD.mgr file name to record logs , to find this open file adcmctl.sh , you will see entry like dd=`date '+%m%d'`; MGR_NAME=$DB_NAME_$dd This has set Concurrent Manager name variable $mgrname Now open file batchmgr here you will variable logfile= this is how application set Concurrent Manager log file name.
Now depending on error message you have to troubleshoot & find solution to your problem. Serch it in Metalink or Oracle Apps Forums.
Very common mistake which you often encounter when you view output of your concurrent request whose display is PDF or any format which require XServer to run is REP-3000 oracle toolkit this can be because of number of reasons but most common is that XServer is not running on Server & Screen which is defined in your display variable. Make sure you have Xvfb or Xvnc running on server where display is set. Check metalink note # 181244.1 Configuring VNC Or XVFB As The X Server For Applications 11i If you are on solaris & even after after installing Xvfb/Xvnc cannot access report Mail









                                                      Autoconfig Oracle Apps 11i

What is Autoconfig in 11i ?
Autoconfig is method of configuring Oracle Applications . All the information required to configure Oracle Apps 11i is stored in file called as Context file. So there are two context file, one for Database Tier & Second for Application Tier. Context file is repository for configuration stored in xml format. Its xml file and file name format is <SID>_<HOSTNAME>.xml so if your machine name is machine1 & SID is VISION then context file name will be VISION_machine1.xml
 What are different Contexts w.r.t. Autoconfig in 11i ?
There are two context files, one for database tier called as Database Context second for Application tier called as Application Context.
 What is location of Contexts file in 11i ?
Database Context file is under Database $ORACLE_HOME/appsutil/<SID>_<HOSTNAME>.xml
Application Context file is under $APPL_TOP/admin/<SID>_<HOSTNAME>.xml

How to run Autoconfig in 11i ?
You will use script adautocfg.sh (on both Database & Application tier) which inturn will call adconfig.sh , which further will calladconfig.pl. You should not worry about later two scripts its for information only. adautoconfig.sh is script which you use to run autoconfig.
 Where to check log files after autoconfig is executed ?
•  On database tier its under $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/MM_DD_YYYY/adconfig.log
•  On Application tier its under $APPL_TOP/admin/$CONTEXT_NAME/log/MMDDYYYY/adconfig.log

where CONTXT_NAME is <SID>_<HOSTNAME>
 What if my Context file itself is corrupted, Can I create one ?
Yes you have utility called adbldxml to build xml file(Context File).
 How to change some parameter in Context/xml file ?
If you are an expert then you can open xml file via any editor & change it but these days Oracle is recommending to use Context Editor or if you are on OAM.H or higher then use OAM (Oracle Application Manager) to change context file.























                                                            Oracle Apps Web Server - OHS

Oracle Web Server also called as OHS (Oracle Http Server) or Oracle-Apache is built on Apache Webserver. Oracle has added few custom component (like mod_plsql, mod_osso...) in Apache webserver & shipped it as Oracle Http Server.
Discussion in this page is currently w.r.t. Oracle Http Server Version 1.0.2.2.2 which is shipped with 11i (11.5.8-10). In coming weeks I'll add 10G Application Server Integration with Oracle Applications 11i.
Oracle Web Server or OHS is entry point in applications, It processes requests coming from network over Client. There is Web Listener listening for Web Requests. If request is for simple html page core Apace returns HTML page but if URL refernced need further processing it will be forwarded to respective module like mod_pls, mod_jserv ... I will start with basics like how to start stop webserver, important directories & files , troubleshooting , tuning & important things to know in oracle applications E-Business suite Webserver.
How to Start/Stop Web Server All startup shutdown scripts in Oracle Applications 11i(11.5.10) are in $OAD_TOP/admin/script/$CONTEXT_NAME where OAD_TOP is also called as COMMON_TOP and CONTEXT_NAME is your SID_hostname , lets say your SID or Instance Name is VISION and its on machine with name machine1 so your CONTEXT_NAME will be VISION_machine1. Script to start/stop Web Server is adapcctl.sh where ad (application dba), apc(apache), ctl(control) and sh stands for shell script. (You will find this script only on node on which you have webserver, if you have multi mode Installation and node 1 is only for Concurrent Manager, Reports & Database and node2 is webserver & forms then adapcctl.sh should be on node2 & not node1 ) adapcctl.sh calls apachectl (shell script in $IAS_ORACLE_HOME/Apache/Apache/bin) which in turn calls HTTPD (in same directory which is executable called http daemon) it starts using configuration file httpd.conf (from $IAS_ORACLE_HOME/Apache/Apache/conf directory , this file calls other configuration file. To know all important configuration file follow config files link)


File System for Web Server As you might already be aware of , if not there are three ORACLE_HOME in Apps
•  Database ORACLE_HOME ( also called as 8i, 9i or 10g HOME depending on your database version)
•  Forms & Reports ORACLE_HOME ( also called as 806 or 6i depneding on Forms Version)
•  Internet Application Server ( iAS 1.0.2.2.2 or 1.0.2.2 depending on your Apps Version 11.5.5..11.5.10)
Web Server comes under third ORACLE_HOME & I will use it as IAS_ORACLE_HOME in my site in future. If you have Installed Oracle E-Business Suite Vision Instance you will see it under Middle Tier under . Lets assume you have installed apps under /u01/VIS11I then your iAS will be under directory /u01/VIS11I/ora/iAS & your IAS_ORACLE_HOME environment variable will point to /u01/VIS11I/ora/iAS. All files & directory related to Application Server will be under this directory.
 


 
For Apps DBA / oracle apps sysadmin following files/dir are important SID_Hostname.env, Apache, network .
•  Env file is to set environment variable to iAS_ORACLE_HOME (During iAS patching )
•  Apache is main directory where your most webserver configuration Sit also called as APACHE_TOP . Important directory under Apache are Apache, Jserv and plsql . Login to your server & check if these files/directories exists.



•  Under iAS/Apache/Apache important directory/files are bin (executable, apachectl,httpd) ,conf ( httpd.conf, httpd_pls.conf, oracle_apache.conf ), logs (access_log, access_log_pls, error_log, error_log_pls, httpd.pid )
•  Under iAS/Apache/Jserv files/directory you want to know are etc(config files), logs(jvm,mod_jserv.log)
•  Under iAS/Apache/modplsql important bits are cache (cookie,plsql), cfg(wdbsvr.app , *.conf)
Its not feasible to explain features/importance of all files as and when I discuss a particular topic in further pages. I am sure you as oracle apps dba definately want to know How to troubleshoot Oracle apps web server, click on next page

Oracle Apps Web Server Troubleshooting
You as oracle application E-Business Suite sysadmin/dba should know how to troubelshoot & where to look in case of any issues with Webserver. In order to find any problems you should look at log file. All Oracle components have their own logs in respective directory. For Oracle Web Server (OHS/Apache) there are two places depending on type of issue , core apache/web server issues are recorded in
•  Main Apache and its logs are at $IAS_ORACLE_HOME/Apache/Apache/logs
Where as anything related to Servlets, mod_jserv, JVM (Java Virtual Machine) should be in
•  mod_jserv for servlets & jvm issues and its logs are at $IAS_ORACLE_HOME/Apache/Jserv/ logs & jvm where $IAS_ORACLE_HOME environment variable points to /u01/VIS11I/ora9/iAS (here you have installed Oracle Apps Vision Instance under /u01 )  
 


 
 Important Configuration Files Few important files & there usages I am explaining here. are files are relateive to $IAS_ORACLE_HOME
•  When Apache starts , it starts with damon HTTP using httpd.conf (in Apache/Apache/conf) this is main configuration file which contain config parameters for Core Apache component(Few Important parameters are PidFile, Port, Listen, User, ServerAdmin, ServerName, DocumentRoot, ErrorLog, LogLevel, LogFormat, TransferLog, ErrorDocument , VirtualHost, SSLLog, SSLLogLevel, include, SSLCeritificateXXXX, RewriteEngine) To understand meaning of these parameters

Important Configuration Files Contd... httpd.conf file calls jserv.conf (used for mod_jserv), oprocmgr.conf (oracle process manager), oracle_apache.conf (Oracle Custom Modules like mod_pls, mod_ossl, mod_osso..)
jserv.conf available at $IAS_ORACLE_HOME/Apache/Jserv/etc . This file calls few properties files ( jserv.properties, viewer4i.properties, forms.properties, xmlsvcs.properties )
oprocmgr.conf Used to configure and manage each remote apache Instances managed by local Apache Instance.
oracle_apache.conf This configuration file under $IAS_ORACLE_HOME/ Apache/Apache /conf is used to configure Oracle built modules supplied with default Apache ( for eg. mod_plsql, oem, imeeting). This file calls other configuration files ( plsql.conf, immeting.conf, apps.conf.
plsql.conf This file under $IAS_ORACLE_HOME / Apache/ modplsql/conf is used to configure pls (Plsql). This file defines to forward all requests like /pls/ to dedicated apache listener. There is another important file in this directory
 


  wdbsvr.app Which in my views is named so after Web Database Server for Applications. This file contain your dad (database Access Descriptor ) information like database connection description & apps user name & password . If you are changing apps password you use utility FNDCPASS and after changing password you have to manually change apps password in this file. Now you will say this is security risk to see password like this in a file . Yes it is but you can obfuscate this password
                                           

                                                Applications 11i Health Check


•  1. Check Web Server is Up : Check in browser http://hostname.domainname:port where hostname.domain name is Machine Name on which Web Server(OHS) is running. If you are using load balancer or Proxy Server in front of Web Server it will be loadbalancer / Proxy Server Name. Port is port on which Web Server is Listening. It is defined in $IAS_ORACLE_HOME /Apache /Apache /conf /httpd.conf , To find more about WebServer & its parameters Click Here . If you can't access this check error_log at $IAS_ORACLE_HOME /Apache /Apache/ logs
•  2. Check Jserv is Up : Check if you can access OAM (Oracle Application Manager) page. http://hostname.domainname:port_number/servlets/weboam/oam/oamLogin If you can't access login screen for OAM, check logs at
•  3. Check mod_pls is working fine : http://hostname.domainname:port/pls/$SID so if you installed vision instance with SID as VIS11I your SID here is VIS11II this sometime in documents also called as TWO_TASK. You should see output from procedure FND_WEB.PING . If not check that -
A) database listener is Up
B) GUEST User is not end dated & password is correct.
C) dbc (database connect descriptor) file is corerct at $FND_TOP/secure
D) apps password is correct in wdbsvr.app at $IAS_ORACLE_HOME/Apache/modplsql/cfg
•  4. Login to Application : Login to application with Application User to confirm login is working fine , if not check mod_pls for any issues.
•  5. Check Form Server is working : Click on any Core Responsibility like "System Administrator", If you are facing any problem opening form Applet
A) Check jinitiator is installed, if not do you have access to install jinitiator
B) Try clearing cache from jinitiator
C) Check forms server parameters are configured properly in appsweb_$CONTEXT_NAME.cfg
D) Check if form server listener is Up : netstat -an | grep form_server_port
•  6. Check Concurrent Manager is Up & Running : Select "Administer Concurrent Manager" & check if "Actual" & "Target" are same. If not check $SID_MM_DD.mgr at $APPLCSF/$APPLLOG To know more about concurrent Manager Click Here
•  7. Check Reports can display properly : Change "Active Users" reports output from "Text file" to "PDF" from Define Concurrent Request Screen. Submit Active Users request & click on Output , check if you can se report in PDF format. If you encounter error like REP-3000 Oracle Toolkit , issue is with DISPLAY,
•  8. Check Apps Listener is Up : Apps listener is different from database listener, Apps Listener is used for various purpose one is to check output & log files in concurrent requests. Check if apps listener is fine by clicking on log file & output file for Active Users request you submitted in Step 7 on previous page. If you encounter any issues while trying to access Log & Output file issue might be with Oracle Apps Listener. Check if adalnctl.sh (where ad is apps dba, aln is apps listener and ctl is control) on application tier started successfully. If yes then check this query (select logfile_name, logfile_node_name, outfile_name, outfile_node_name from fnd_concurrent_requests where request_id=[your request id number].
•  9. Check if Workflow is Up : Login to OAM (Oracle Application Manager) using url mentioned in step 2 in previous page. After login, On top right of page from "Nevigate to" select "Workflow Manager" from drop down menu and click on GO button. Check "Notification Mailers" is Up .
•  10. Check if Discoverer 4i is Up : There are two type of discoverer 4i
Discoverer Viewer - Check http://yourhostname:port/discoverer4i/viewer
Discoverer Plus Check http://yourhostname:port/discwb4/html/english/welcome.htm
11. Custom applications : Any custom application configured with oracle apps 11i, oem any other monitoring software.






                                           

                                                 JVM in Oracle Apps 11i


What is JVM ?
JVM acronym for Java Virtual Machine which executes instructions generated by Java compiler. So user click on any Self Service Request or any program which uses Java, then Apache forwards this request to mod_jserv (mod_oc4j in 10g AS) & mod_jserv caters this request with help of JVM.
 How & Where check JVM related configuration in Oracle Apps 11i ?
So lets start with CONTEXT file under $APPL_TOP/admin (xml file) which is of pattern $SID_$HOSTNAME.xml
There are two important lines in CONTEXT file which will help you in understanding JVM
•  jvm_options oa_var="s_jvm_options" osd="Solaris" -verbose:gc -Xmx512M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB /jvm_options

-Verbose:gc means JVM is configured to print output when gc(Garbage Collector) runs.
Xmx is maximum memory allocated to JVM in above example its 512 MB.
Xms is JVM will start with this much memory i.e. 128 MB.
 Now Check another line in 11i Context file like
•  oacore_nprocs oa_var="s_oacore_nprocs"2/oacore_nprocs
Which means that there are two JVM's for OACore Group. Usually default its 1 JVM in my Instance I changed it to 2, to cater huge Self Service users in my case.

 
Q: How to increase No. Of JVM's
Since you know place where number of JVM's are stored in Apps 11i in Context File , so you can change them as per your requirement. There are basically following Groups with their own JVM's.
•  OACoreGroup, where most of Java request goes
•  DiscoGroup, which serve your Discoverer related requests
•  FormsGroup, for Forms (If they are running in Servlet Mode, confirm it again)
•  XmlSvcsGroup, for XML Services
In Context File
disco_nprocs oa_var="s_disco_nprocs" osd="Solaris" 1 /disco_nprocs Sets 1 JVM Process for Discoverer.
oacore_nprocs oa_var="s_oacore_nprocs" 1 /oacore_nprocs Sets 1 JVM for for OACoreGroup
Similarly , s_forms_servlet_nprocs & s_xmlsvcs_nprocs for Forms & XML Services resp.
 These Groups are defined in configuration file for Jserv i.e. jserv.conf under $IAS_ORA/Apache/Jserv/conf ; like
ApJServGroup OACoreGroup
ApJServGroup DiscoGroup
ApJServGroup FormsGroup
ApJServGroup XmlSvcsGrp
 Q: Where to find Apps 11i JVM logs ?
JVM log location is defined in java.sh ( found in $IAS_ORACLE_HOME/Apache/Apache/bin) Oracle Apps 11i JVM log file directory is defined by parameter JVMLOGDIR ( $IAS_ORACLE_HOME/Apache/Jserv/logs/jvm ) and log file are defined by STDOUTLOG & STDERRLOG. Example of JVM log files are
OACoreGroup.0.stderr ,OACoreGroup.0.stdout, DiscoGroup.0.stdout, DiscoGroup.0.stderr, XmlSvcsGrp.0.stderr, XmlSvcsGrp.0.stdout
where 0 denotes first JVM & 1 denotes second JVM. stderr records error encountered in JVM & stdout records other information like GC ..




Analyzing Oracle Apps 11i JVM logs
In order to analyze Oracle apps 11i JVM, lets open stdout file for one of Group, I have selected OACoreGroup here, you know log file location (If not check previous page) , open file like OACoreGroup.X.stdout you should see output like below if GC(Grabage Collector) is set in Verbose mode.
48561.624: [GC 325980K->170382K(519168K), 0.2751056 secs]
49307.880: [GC 334862K->179171K(519168K), 0.2660486 secs]
50236.662: [GC 343651K->187797K(519168K), 0.2518720 secs]
50515.494: [Full GC[Unloading class sun. reflect. Generated Method Accessor 143]
[Unloading class sun. reflect. GeneratedMethodAccessor136]
[Unloading class sun. reflect. GeneratedMethodAccessor74]
Here first entry is time since JVM was started so each time you bounce Apache it will be reset to 0. So difference between two entries is seconds after which GC (Garbage Collector) was executed. First entry in bracket [ is Heap Size at start of GC & Second entry is Heap Size after GC was executed. Number mentioned in round bracket () is heap size currently attocated in K. If you see GC running very frequently , you can start thinking of increasing JVM heap size
First three entries were for Minor Garbage Collector & fourth one is FULL GC is for Full Garbage Collector.
 Q: How to check JDBC Connection ?
connect using apps, sys or system & issue
select count(*), module from v$session where program like '%JDBC%' group by module;
 
 Q: How to check JDBC thin driver version ?
Often you would like to know what is version of jdbc thin drivers that your Web Server ( Apache, ias 1.0.2.2.2 ) is using . To find out how you can check jdbc thin driver version Click Here

 Q: How to Monitor Oracle Apps 11i JVM ?
There are some tools available like jvmstst, jconsole .. but I never tried so wait till I configure one for my system. For monitoring via jconsole I read wonderful note on my favorite blogger's (Steven Chan) site.
Sizing Apps JVM
As by now you might be aware that there are four JVM Groups, OACoreGroup,DiscoGroup, FormsGroup & XMLsvcsGrp ( FromsGroup JVM's disabled by defualt as forms run on Socket rather servlets) so thumb rule in Apps is
1 JVM with default settings per 100 Users for OACoreGroup
so if you have 1000 users with five middle tiers you can configure 2 JVM on each middle tier i.e. 2X5X100=1000 Users.

 








                      Oracle Apps component Version
 
Q: How to find Oracle Applications Web Server Version ?
Q: How to find Version of Apache used with oracle apps 11i ?
Log to Application tier as Operating System Usually called as APPLMGR ; go to location $IAS_ORACLE_HOME/Apache/Apache/bin and run command
./httpd -version
You will see output like
Server version: Oracle HTTP Server Powered by Apache/1.3.19 (Unix)
Server built: Dec 6 2005 14:59:13 (iAS 1.0.2.2.2 rollup 5)
Which means you are on iAS Version 1.0.2.2.2 with patchset rollup 5 with Apache Version 1.3.19
Server version: Oracle-Application-Server-10g/10.1.2.0.2 Oracle-HTTP-Server
Above is output If you have installed 10g Application Server with 11i
 
Q: How to find Jinitiator Version ?
Check for file like appsweb_SID_HOSTNAME.cfg under $OA_HTML/bin defined by environment variable FORMS60_WEB_CONFIG_FILE & search for entry like jinit_ver_name , you will see entry like
jinit_ver_name=Version=1,3,1,23
which means Jinitiator version is 1.3.1.23 ; if your version is 1.3.1.18 you will see entry like 1,3,1,18
 
Q: How to find Forms Version in 11i ?
Login to forms from frontend , on top menu bar of forms click on "Help" & Select "About Oracle Applications" go to "Forms Server " section. You should see entry like below depending on your forms version
Oracle Forms Version : 6.0.8.26.0
Which mean you are on forms version 6.0.8.26 . If you want to know whats your forms patchset level then subtract 9 from fourth digit which means for above case form patchset 17 is applied.
 
Q: How to find Forms Version in Apps from command Line ?
Enter "f60gen" on Forms Server and check for first line in output like
Forms 6.0 (Form Compiler) Version 6.0.8.26.0 (Production)
This confirms that you are on forms server version 6.0.8.26.0 and patch set 17. ( Patch Set = Fourth Digit - 9)

Q: How to find Version of any file in Oracle Apps 11i ? or
Q: How to find any Reports Version 11i ? or
In Oracle Applications under ad utilities there is utility called as adident Used for Identification purpose or to find out file version use
adident Header <filename>
for ex. inorder to to find file version of one AR form i.e. ARXGLCOR.fmx
adident Header ARXGLCOR.fmx
You should see output like
$Header APPSTAND.fmb 115.33 2002/04/04 11:13:40 pkm ship
$ $Header ARXGLCOR.fmb 115.15 2005/01/31 13:48 mraymond ship
Which means above form executable consist of two forms whose version is 115.33 & 115.15 resp. Similarly you can use adident to find version of any report in 11i.






Q: How to find Operation System Version (Unix/Linux) ?
For solaris use command
uname -a
You will see output like
For Solaris SunOS servername 5.8 Generic_117350-23 sun4u sparc SUNW,Sun-Fire-V240
For RedHat Linux use command
cat /etc/*release*
You will see output like
Red Hat Enterprise Linux AS release 3 (Taroon Update 6)
Which means you are on Solaris 5.8 or Linux AS 3 resp.
 
Q: How to find if your Operating System is 32 bit or 64 Bit ?
For solaris use command
isainfo -v
If you see out put like
32-bit sparc applications
That means your O.S. is only 32 bit but if you see output like
64-bit sparcv9 applications
32-bit sparc applications
above means your o.s. is 64 bit & can support both 32 & 64 bit applications


Q: How to find Operating System version ?
For solaris use command
uname -a
You will see output like
For Solaris SunOS servername 5.8 Generic_117350-23 sun4u sparc SUNW,Sun-Fire-V240
For RedHat Linux use command
cat /etc/*release*
You will see output like
Red Hat Enterprise Linux AS release 3 (Taroon Update 6)
Which means you are on Solaris 5.8 or Linux AS 3 resp.
 
Q: How to find if your Operating System is 32 bit or 64 Bit ?
For solaris use command
isainfo -v
If you see out put like
32-bit sparc applications
That means your O.S. is only 32 bit but if you see output like
64-bit sparcv9 applications
32-bit sparc applications
above means your o.s. is 64 bit & can support both 32 & 64 bit applications
 
Q: Can I run 64 bit application on 32 bit Operating system ?
You can run 32 bit application (like oracle application server, web server, all oracle application server are 32 bit ) on both 32 /64 bit operating system but a 64 bit application like 64 bit database can run only on 64 bit operating system.





Q How to find if your database is 32 bit or 64 bit(Useful in applying Patches) ?
execute "file $ORACLE_HOME/bin/oracle" , you should see output like
/u01/db/bin/oracle: ELF 64-bit MSB executable SPARCV9 Version 1
which means you are on 64 bit oracle
If your oracle is 32 bit you should see output like
oracle: ELF 32-bit MSB executable SPARC Version 1

Q: How to find OUI version ?

OUI stands for Oracle Universal Installer. In order to find Installer version you have to execute ./runInstaller -help ( From OUI location)
You will get output like
Oracle Universal Installer, Version 10.1.0.4.0 Production Copyright (C) 1999, 2005, Oracle. All rights reserved.
That means OUI version in above case is 10.1.0.4
OUI location is $ORACLE_HOME/oui/bin
 
Q: How to find Database version ?

SQL> select * from v$version;
The command returns the release information, such as the following:
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
PL/SQL Release 9.2.0.7.0 - Production
CORE 9.2.0.7.0 Production
TNS for 32-bit Windows: Version 9.2.0.7.0 - Production
NLSRTL Version 9.2.0.7.0 - Production
 
Q: How to find Oracle Workflow Cartridge Release Version ?
Log in to the database as the owf_mgr user and issue
select wf_core.translate('WF_VERSION') from dual;
 
Q: How to find opatch Version ?
opatch is utility to apply database patch , In order to find opatch version execute
"$ORACLE_HOME/OPatch/opatch version"
You should see output like OPatch Version: 1.0.0.0.52 which means your opatch version is 1.0.0.0.52

                                 Oracle Apps Version                  

Q. How to find Version of Apps 11i ?
Run following SQL from apps user ;
SQL> select RELEASE_NAME from fnd_product_groups;
You should see output like
RELEASE_NAME
-----------------------
11.5.10.2
Which means you are on Apps Version 11.5.10.2
 Q: Can I run 64 bit application on 32 bit Operating system ?
You can run 32 bit application (like oracle application server, web server, all oracle application server are 32 bit ) on both 32 /64 bit operating system but a 64 bit application like 64 bit database can run only on 64 bit operating system.
 



Q How to find if your database is 32 bit or 64 bit(Useful in applying Patches) ?
execute "file $ORACLE_HOME/bin/oracle" , you should see output like
/u01/db/bin/oracle: ELF 64-bit MSB executable SPARCV9 Version 1
which means you are on 64 bit oracle
If your oracle is 32 bit you should see output like
oracle: ELF 32-bit MSB executable SPARC Version 1
Now you know what should be bit of patch to download

Q How to Discoverer Version installed with Apps ?
Discoverer with Apps installed in ORACLE_HOME same as 806 is usually 3i or 4i. To find Version login to Application Tier & go to $ORACLE_HOME/discwb4/bin and execute
strings dis4ws | grep -i 'discoverer version'
You should see output like
Discoverer Version:Session 4.1.47.09.00
Which means you are on discoverer 4i version 4.1.47.09

Q. How to find Workflow Version embedded in Apps 11i ?
Run following SQL from apps user ;
SQL>select TEXT from WF_RESOURCES where NAME='WF_VERSION';

You should see output like
TEXT
-----------------------
2.6.0
Which means you are on Workflow Version 2.6.0
You can also use script wfver.sql in FND_TOP/sql to find version of workflow in Apps.
 
Q: How to find version of JDK Installed on Apps ?
There might be multiple JDK installed on Operating System . Like JDK 1.3.1, 1.4.2 or 1.5 but in order to find which Version of JDK your Apps is using
Open your Context File $SID_$HOSTNAME.xml under $APPL_TOP/admin and look for variable
JDK_TOP oa_var="s_jdktop" what so ever value assigned against that parameter go to that directory & cd bin & execute command
./java -version so lets assume entry above is /usr/jdk then cd /usr/jdk/bin & ./java -version , you will see output like
java version "1.4.2_10"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_10-b03)
Java HotSpot(TM) Client VM (build 1.4.2_10-b03, mixed mode)
Which means you are using JDK 1.4.2 in Oracle Applications 11i.













                       Oracle Apps DBA Important Tables

Concurrent Manager

FND_CONCURRENT_QUEUES
FND_CONCURRENT_PROGRAMS
FND_CONCURRENT_REQUESTS
FND_CONCURRENT_PROCESSES
FND_CONCURRENT_QUEUE_SIZE
FND

FND_APPL_TOPS
FND_LOGINS
FND_USER
FND_DM_NODES
FND_TNS_ALIASES
FND_NODES
FND_RESPONSIBILITY
FND_DATABASES
FND_UNSUCCESSFUL_LOGINS
FND_LANGUAGES
FND_APPLICATION
FND_PROFILE_OPTION_VALUES
AD / Patches

AD_APPLIED_PATCHES
AD_PATCH_DRIVERS
AD_BUGS
AD_INSTALL_PROCESSES
AD_SESSIONS
AD_APPL_TOPS


                                             



















                                               Oracle Apps DBA Profile Option

Profile Options Useful for Oracle Apps DBA
Here is the list of few profile options which Apps DBA use frequently. It is not necessary that you as Apps DBA must know all profile options, it depends on your implemnetation. I am going going to update more about Profile Options.
Applications Help Web Agent
Applications Servlet Agent
Applications Web Agent
Concurrent: Active Request Limit
Concurrent: Hold Requests
Concurrent: Multiple Time Zones
Concurrent: Report Access Level
Concurrent: Report Copies
Concurrent: Request priority
Database Instance
Enable Security Group
FND: Debug Log Filename
FND: Debug Log Level
Forms Runtime Parameters
Gateway User ID
ICX: Discoverer Launcher
ICX: Forms Launcher
ICX: Report Launcher
ICX: Limit Connect
ICX: Limit time
ICX: Session Timeout
MO Operating Unit
Node Trust Level
RRA: Delete Temporary Files
RRA: Enabled
RRA: Service Prefix
RRA: Maximum Transfer Size
Self Service Personal Home Page Mode
Sign-On: Audit Level
Signon Password Failure Limit
Signon Password Hard to Guess
Signon Password Length
Signon Password No Reuse
Site Name
Socket Listener Port
TCF: Host
TCF: Port
TWO TASK
Viewer: Text



Oracle Apps DBA Scripts


•  afimchk.sql Tells the status of the ICM and PMON method
•  afcmstat.sql Lists active manager processes
•  afrqrun.sql Lists all the running, waiting and Terminating requests
•  afrqwait.sql Lists requests that are constrained and waiting for the ICM to release them.
•  afrqscm.sql Prints log file name of managers that can run a given request. It can be used to check for possible errors when a request stays in pending status. It requires a request id value.
•  afcmcreq.sql Prints the log file name of the manager that processed the request
•  afrqstat.sql Summary of completed concurrent requests grouped by completion status and execution type. It requires number of days prior to today on which to report parameter.
•  afimlock.sql Lists locks that the ICM is waiting to get
•  afcmrrq.sql Lists managers that currently are running a request





No comments:

Post Top Ad

Your Ad Spot

Pages