You are on page 1of 46

How to Start / Stop services in Oracle Applications R12 ( Application / Database Tier) How to Start/Stop services in Oracle Applications

R12. These steps are from Online Oracle Apps DBA (11i /R12) traininghere (This is interactive online course over weekend with hands on exercises on installation, patching, cloning during weekdays) Assumptions Application Tier O.S. User : avisr12 (usually applmgr) Database Tier O.S. User : ovisr12 (usually oracle) R12 install base : /oracle/apps/r12/visr12 Database SID : visr12 Database Version : 11.1.0 Hostname : focusthreadr12 Operating System : Unix/Linux Apps Schema Password : apps (apps is default password) . Start-Up/Shutdown order If you are starting services then first start Database Tier services and then Application Tier Services. If you are shutting down services then first stop Application Tier services andthen Database Tier Services. 1. Startup 1.1 Start Database Tier 1.1.1 Login as database tier user (ovisr12) 1.1.2 Set environment variable by

running $SID_hostname.envfrom $INSTALL_BASE/db/tech_st/11.1.0 - cd /oracle/apps/r12/visr12/db/tech_st/11.1.0 - . visr12_focusthreadr12.com (note: dot in front) 1.1.3 Start database - sqlplus /as sysdba - SQL> startup 1.1.4 Start Database Listener (lsnrctl start $SID) - lsnrctl start visr12 .

. 1.2 Start Application Tier 1.2.1 Login as application tier user (avisr12)

1.2.2 Set environment variable by running $SID_hostname.envfrom $INSTALL_BASE/apps/apps_st/appl - cd /oracle/apps/r12/visr12/apps/apps_st/appl - . visr12_focusthreadr12.com (note: dot in front) 1.2.3 Start Application Tier (adstrtal.sh apps/$apps_password) - cd $ADMIN_SCRIPTS_HOME - ./adstrtal.sh apps/apps

. . 2. Shutdown Services 2.1 Shutdown Application Tier 2.1.1 Login as application tier user (avisr12) 2.1.2 Set environment variable by running $SID_hostname.env from $INSTALL_BASE/apps/apps_st/appl - cd /oracle/apps/r12/visr12/apps/apps_st/appl - . visr12_focusthreadr12.com (note: dot in front) 2.1.3 Stop Application Tier (adstpall.sh apps/$apps_password)

- cd $ADMIN_SCRIPTS_HOME - ./adstpall.sh apps/apps . 2.2 Shutdown Database Tier 2.2.1 Login as database tier user (ovisr12) 2.2.2 Set environment variable by running $SID_hostname.env from $INSTALL_BASE/db/tech_st/11.1.0 - cd /oracle/apps/r12/visr12/db/tech_st/11.1.0 - . visr12_focusthreadr12.com (note: dot in front) 2.2.3 Stop database - sqlplus /as sysdba - SQL> shutdown immediate 2.2.4 Stop Database Listener (lsnrctl start $SID) - lsnrctl stop visr12 Start-up Shutdown Scripts in Oracle Apps R12 Order of Startup Shutdown As in Oracle Apps 11i order for startup is A) Start Database Tier Services Start Database Listener Start Database Then B) Start Application/Middle Tier Services adstrtal.sh Order for shutdown in Oracle Apps R12 is A) Stop Application/Middle Tier Services adstpall.sh Then

B) Stop Database Tier Services Stop Database Stop Database Listener Database Tier Scripts in R12 For Database tier you need to start database and database listener. Scripts are located inDatabase_Install_Dir/db/tech_st/10.2.0/appsutil/scripts/$CO NTEXT_NAME- For Database Use script addbctl.sh - For Database Listener Use script addlnctl.sh or alternatively you can use lsnrctl startstop listener_name (For Database Listener) sqlplus /as sysdba SQL> startup shutdown immediate Middle/Application Tier Scripts in R12 Scripts for Application Tier services in R12 are located in Install_base/inst/apps/$CONTEXT_NAME/admin/scripts where CONTEXT_NAME is of format SID_HOSTNAME i) adstrtal.sh Master script to start all components/services of middle tier or application tier. This script will use Service Control API to start all services which are enabled after checking them in context file (SID_HOSTNAME.xml or CONTEXT_NAME.xml)

ii) adstpall.sh Master script to stop all components/services of middle tier or application tier. iii) adalnctl.sh Script to start / stop apps listener (FNDFS and FNDFS). This listener will file will be in 10.1.2 ORACLE_HOME (i.e. Forms & Reports Home) listener.ora file will be in $INST_TOP/apps/$CONTEXT_NAME/ora/10.1.2/network/admin directory (Mostly similar to one in 11i with only change in ORACLE_HOME i.e. from 8.0.6 to 10.1.2) iv) adapcctl.sh Script to start/stop Web Server or Oracle HTTP Server. This script uses opmn (Oracle Process Manager and Notification Server) with syntax similar to opmnctl[startstop]proc ohs likeopmnctl stopproc ohs. (In 11i this script directly used to call apachectl executable but now calls opmnctl which in turn calls apachectl. In 11i web server oracle home was 1.0.2.2.2 but in R12 its 10.1.3) v) adcmctl.sh Script to start / stop concurrent manager, Similar to one in 11i. (This script in turn calls startmgr.sh ) vi) adformsctl.sh Script to start / stop Forms OC4J from 10.1.3 Oracle_Home. This script will also useopmnctl to start/stop Forms OC4J like opmnctl stopproc type=oc4j instancename=forms vii) adformsrvctl.sh This script is used only if you wish to start forms in socket mode.

Default forms connect method in R12 is servlet. If started this will start frmsrv executable from 10.1.2 Oracle_Home in Apps R12 viii) adoacorectl.sh This script will start/stop oacore OC4J in 10.1.3 Oracle_Home. This scripts will also useopmnctl (similar to adapcctl & adformsctl) to start oacore instance of OC4J like opmnctl startproc type=oc4j instancename=oacore ix) adoafmctl.sh This script will start/stop oafm OC4J in 10.1.3 Oracle_Home. This scripts will also useopmnctl (similar to above) to start oacore instance of OC4J like opmnctl startproc type=oc4j instancename=oafm x) adopmnctl.sh This script will start/stop opmn service in 10.1.3 Oracle_Home. opmn will control all services in 10.1.3 Oracle_Home like web server or various oc4j instances. If any services are stopped abnormally opmn will/should start them automatically. xi) jtffmctl.sh This script will be used to start/stop one to one fulfilment server. xii) mwactl.sh To start / stop mwa telnet server where mwa is mobile application. Log File Location for Startup Shutdown Services in R12 Log files for startup/shutdown scripts for application/mid tier in R12 are in$INST_TOP/apps/$CONTEXT_NAME/logs/appl/admin/l

og (adalnctl.txt, adapcctl.txt, adcmctl.txt, adformsctl.txt, adoacorectl. txt, adoafmctl.txt,adopmnctl.txt, adstrtal.log, jtffmctl.txt ) Where AD is for Application DBA DB is for database DLN is database listener CTL is control Isnt this easy to

Oracle R12/12i log file (Patch, Clone, Startup/Shutdown) Log files are useful in troubleshooting issues in Oracle Applications. Here is the list of Log file location in Oracle Applications for Startup/Shutdown, Cloning, Patching, DB & Apps Listener and various components in Apps R12/12i: A. Startup/Shutdown Log files for Application Tier in R12 Instance Top is new TOP added in R12 (to read more click here) Startup/Shutdown error message text files like adapcctl.txt, adcmctl.txt $INST_TOP/apps/$CONTEXT_NAME/logs/appl/admin/log

Startup/Shutdown error message related to tech stack (10.1.2, 10.1.3 forms/reports/web) $INST_TOP/apps/$CONTEXT_NAME/logs/ora/ (10.1.2 & 10.1.3) $INST_TOP/apps/$CONTEXT_NAME/logs/ora/10.1.3/Apache/error _log[timestamp] $INST_TOP/apps/$CONTEXT_NAME/logs/ora/10.1.3/opmn/ (OC4J~, oa*, opmn.log)$INST_TOP/apps/$CONTEXT_NAME/logs/ora/10.1.2/ne twork/ (listener log) $INST_TOP/apps/$CONTEXT_NAME/logs/appl/conc/log (CM log files) B. Log files related to cloning in R12 Preclone log files in source instance i) Database Tier /$ORACLE_HOME/appsutil/log/$CONTEXT_NAME/(StageDBTier_M MDDHHMM.log) ii) Application Tier $INST_TOP/apps/$CONTEXT_NAME/admin/log/ (StageAppsTier_MMDDHHMM.log) Clone log files in target instance Database Tier $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/ApplyDBTier_<ti me>.log Apps Tier

$INST_TOP/apps/$CONTEXT_NAME/admin/log/ApplyAppsTier_<ti me>.log If your clone on DB Tier fails while running txkConfigDBOcm.pl (Check metalink note 415020.1) During clone step on DB Tier it prompts for Target System base directory for source homes and during this you have to give like /base_install_dir like ../../r12 and not oracle home like ../../r12/db/tech_st_10.2.0 C. Patching related log files in R12 i) Application Tier adpatch log - $APPL_TOP/admin/$SID/log/ ii) Developer (Developer/Forms & Reports 10.1.2) Patch $ORACLE_HOME/.patch_storage iii) Web Server (Apache) patch $IAS_ORACLE_HOME/.patch_storage iv) Database Tier opatch log $ORACLE_HOME/.patch_storage D. Autoconfig related log files in R12 i) Database Tier Autoconfig log : $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/MMDDHHMM/ad config.log $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/MMDDHHMM/Ne tServiceHandler.log

ii) Application Tier Autoconfig log $INST_TOP/apps/$CONTEXT_NAME/admin/log/$MMDDHHMM/ad config.log Autoconfig context file location in R12 $INST_TOP/apps/$CONTEXT_NAME/appl/admin/$CONTEXT_NAM E.xml E. R12 Installation Logs Database Tier Installation RDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/<MMDDHHMM>. logRDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/ApplyDBTechSta ck_<MMDDHHMM>.logRDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/ohclone.logRDB MS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/make_<MMDDH HMM>.logRDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/installdbf.logRDB MS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/adcrdb_<SID>.l og RDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/ApplyDatabase_ <MMDDHHMM>.logRDBMS $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/<MMDDHHMM> /adconfig.log RDBMS

$ORACLE_HOME/appsutil/log/$CONTEXT_NAME/<MMDDHHMM> /NetServiceHandler.log Application Tier Installation $INST_TOP/logs/<MMDDHHMM>.log $APPL_TOP/admin/$CONTEXT_NAME/log/ApplyAppsTechStack.lo g $INST_TOP/logs/ora/10.1.2/install/make_<MMDDHHMM>.log $INST_TOP/logs/ora/10.1.3/install/make_<MMDDHHMM>.log $INST_TOP/admin/log/ApplyAppsTechStack.log $INST_TOP/admin/log/ohclone.log $APPL_TOP/admin/$CONTEXT_NAME/log/installAppl.log $APPL_TOP/admin/$CONTEXT_NAME/log/ApplyAppltop_<MMDD HHMM>.log $APPL_TOP/admin/$CONTEXT_NAME/log/<MMDDHHMM>/adcon fig.log $APPL_TOP/admin/$CONTEXT_NAME/log/<MMDDHHMM>/NetSe rviceHandler.log Inventory Registration: $Global Inventory/logs/cloneActions<timestamp>.log $Global Inventory/logs/oraInstall<timestamp>.log $Global Inventory/logs/silentInstall<timestamp>.log F. Other log files in R12 1) Database Tier 1.1) Relink Log files :

$ORACLE_HOME/appsutil/log/$CONTEXT_NAME /MMDDHHMM/ make_$MMDDHHMM.log 1.2) Alert Log Files : $ORACLE_HOME/admin/$CONTEXT_NAME/bdump/alert_$SID.log 1.3) Network Logs : $ORACLE_HOME/network/admin/$SID.log 1.4) OUI Logs : OUI Inventory Logs : $ORACLE_HOME/admin/oui/$CONTEXT_NAME/oraInventory/logs 2) Application Tier $ORACLE_HOME/j2ee/DevSuite/log $ORACLE_HOME/opmn/logs $ORACLE_HOME/network/logs Tech Stack Patch 10.1.3 (Web/HTTP Server) $IAS_ORACLE_HOME/j2ee/forms/logs $IAS_ORACLE_HOME/j2ee/oafm/logs $IAS_ORACLE_HOME/j2ee/oacore/logs $IAS_ORACLE_HOME/opmn/logs $IAS_ORACLE_HOME/network/log $INST_TOP/logs/ora/10.1.2 $INST_TOP/logs/ora/10.1.3 $INST_TOP/logs/appl/conc/log $INST_TOP/logs/appl/admin/log

Advantages of new INSTANCE HOME The additional Instance Home makes the middle tier more easy to manage and organised since the data is kept separate from the config files. The Instance Home also has the ability to share the Applications and Technology stack code across multiple instances. Another advantage of the Instance Home is that the Autoconfig no longer writes anything to the APPL_TOP and ORACLE_HOME directories, everything is now written in the INST_TOP as a result APPL_TOP and ORACLE_HOME can also be made read only file system if required . Earlier say the adpatch used to write the log file in APPL_TOP/admin directory but with the new model the APPL_CONFIG_HOME/admin is used. To create a new instance that shares an existing middle-tier, just create a new instance_top with proper config files and NFS Mount the middle tier in the server.The basic structure of the Instance Home is:$APPS_BASE/inst/apps/$CONTEXT_NAME or also defined by environment variable $INST_TOP, where APPS_BASE (which does not have or need a corresponding environment variable) is the top level of the Applications installation and $CONTEXT_NAME is the highest level at which the Applications context exists (format $SID_$hostname).

Changes to existing environment Variables in R12

Advantages of new INSTANCE HOME The additional Instance Home makes the middle tier more easy to manage and organised since the data is kept separate from the config files. The Instance Home also has the ability to share the Applications and Technology stack code across multiple instances. Another advantage of the Instance Home is that the Autoconfig no longer writes anything to the APPL_TOP and ORACLE_HOME directories, everything is now written in the INST_TOP as a result APPL_TOP and ORACLE_HOME can also be made read only file system if required . Earlier say the adpatch used to write the log file in APPL_TOP/admin directory but with the new model the APPL_CONFIG_HOME/admin is used.

To create a new instance that shares an existing middle-tier, just create a new instance_top with proper config files and NFS Mount the middle tier in the server.The basic structure of the Instance Home is:$APPS_BASE/inst/apps/$CONTEXT_NAME or also defined by environment variable $INST_TOP, where APPS_BASE (which does not have or need a corresponding environment variable) is the top level of the Applications installation and $CONTEXT_NAME is the highest level at which the Applications context exists (format $SID_$hostname). What are the key configuration files of Oracle EBS and Where are the key configuration files located(for 11i and Rel 12) EXPLANATION OF SOME IMPORTANT CONFIGURATION FILES in 11i:================================================== = httpd.conf ->This is main Apache configuration file. From this configuration file it identify port definitions, memory settings, loggin levels, log file locations and other configuration options and files. Port=web_cache_port: Specifies the Oracle Application Server Web Cache listening ports Listen=Oracle_HTTP_Server_port: Specifies the HTTP and HTTPS ports obtained by Oracle HTTP Server. jserv.conf -> Oracle HTTP Server includes a Java Virtual Machine (JVM), which is called JServ. jserv.conf and jserv.properties are the key configuration files for Jserv

All our Self Service servlets requests are via mod_jserv like discoverer view, xml services or OAM login (So you know now where to look if issue happens in these services) If your Form Server is in servlet Mode then Core Applications are also accessed via Web Server (Jserv Component) This file calls few properties files like jserv.properties, zone properties, viewer4i.properties, forms.properties, xmlsvcs.properties. This file calls other configuration files like plsql.conf, immeting.conf, apps.conf. oprocmgr.conf ->(in Apache/conf) This Oracle module provides process management and load balancing services to JServ processes This module starts, stops, and detects death of processes (starting new processes to replace them), and provides load balancing services to the processes oracle_apache.conf -> This configuration file is used to configure Oracle built modules supplied with default Apache like mod_pls, mod_ossl, oem, imeeting. These files are used for mod_pls configuration. Plsql.conf ->This file is used to configure pls (Plsql). This file defines to forward all requests like /pls/ to dedicated apache listener. mod_plsql is an Oracle HTTP Server plug-in that communicates with the database. It maps browser requests into database stored procedure calls over a SQL*Net connection. It is often indicated by a /pls/ virtual path.

wdbsvr.app ->Which in my views is named so after Web Database Server for Applications. This file contains 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.

Startup Shutdown Scripts Oracle Apps R12 Order of Startup Shutdown As in Oracle Apps 11i order for startup is 1) Start Database Tier Services Start Database Listener Start Database Then 2) Start Application/Middle Tier Services adstrtal.sh Order for shutdown in Oracle Apps R12 is 1) Stop Application/Middle Tier Services adstpall.sh Then 2) Stop Database Tier Services Stop Database Stop Database Listener Database Tier Scripts in R12

For Database tier you need to start database and database listener. Scripts are located inDatabase_Install_Dir/db/tech_st/10.2.0/appsutil/scripts/$ CONTEXT_NAME- For Database Use script addbctl.sh- For Database Listener Use script addlnctl.sh or alternatively you can use lsnrctl startstop listener_name (For Database Listener) sqlplus /as sysdba SQL> startup shutdown immediate Middle/Application Tier Scripts in R12 Scripts for Application Tier services in R12 are located in Install_base/inst/apps/$CONTEXT_NAME/admin/scripts where CONTEXT_NAME is of format SID_HOSTNAME i) adstrtal.sh Master script to start all components/services of middle tier or application tier. This script will use Service Control API to start all services which are enabled after checking them in context file (SID_HOSTNAME.xml or CONTEXT_NAME.xml) ii) adstpall.sh Master script to stop all components/services of middle tier or application tier. iii) adalnctl.sh Script to start / stop apps listener (FNDFS and FNDFS). This listener will file will be in 10.1.2 ORACLE_HOME (i.e. Forms & Reports Home) listener.ora file will be in $INST_TOP/apps/$CONTEXT_NAME/ora/10.1.2/network/ad min directory iv) adapcctl.sh Script to start/stop Web Server or Oracle HTTP Server. This

script uses opmn (Oracle Process Manager and Notification Server) with syntax similar to opmnctl [startstop]proc ohs like opmnctl stopproc ohs . v) adcmctl.sh Script to start / stop concurrent manager (This script in turn calls startmgr.sh ) vi) adformsctl.sh Script to start / stop Forms OC4J from 10.1.3 Oracle_Home. This script will also use opmnctl to start/stop Forms OC4J like opmnctl stopproc type=oc4j instancename=forms vii) adformsrvctl.sh This script is used only if you wish to start forms in socket mode. Default forms connect method in R12 is servlet. If started this will start frmsrv executable from 10.1.2 Oracle_Home in Apps R12 viii) adoacorectl.sh This script will start/stop oacore OC4J in 10.1.3 Oracle_Home. This scripts will also use opmnctl(similar to adapcctl & adformsctl) to start oacore instance of OC4J like opmnctl startproc type=oc4j instancename=oacore ix) adoafmctl.sh This script will start/stop oafm OC4J in 10.1.3 Oracle_Home. This scripts will also use opmnctl(similar to above) to start oacore instance of OC4J like opmnctl startproc type=oc4j instancename=oafm x) adopmnctl.sh This script will start/stop opmn service in 10.1.3 Oracle_Home. opmn will control all services in 10.1.3 Oracle_Home like web server or various oc4j instances. If any services are stopped abnormally opmn will/should start them automatically. xi) jtffmctl.sh This script will be used to start/stop one to one fulfilment

server. xii) mwactl.sh To start / stop mwa telnet server where mwa is mobile application. Log File Location for Startup Shutdown Services in R12 Log files for startup/shutdown scripts for application/mid tier in R12 are in$INST_TOP/apps/$CONTEXT_NAME/logs/appl/admin/log (adalnctl.txt, adapcctl.txt, adcmctl.txt, adformsctl.txt, adoacore ctl.txt, adoafmctl.txt, adopmnctl.txt,adstrtal.log, jtffmctl.txt )

How to compile Oracle Apps 11i Forms ============================ Check whether the forms that you want to generate are not in use at the time you are generating them. If they are in use when you generate the fmx files, the forms client session terminates. 1) Login to the Forms server node as applmgr and run .env file to set the applications environment. 2) Change directory to $AU_TOP/forms/US.

3) Use the f60gen command to generate the fmx files for the fmb files. 4) Issue the following command $ f60gen module=<formname>.fmb userid=apps/<apps_pwd> output_file=/forms/US/<formname>.fmx How to compile Oracle Apps R12 Forms ============================= 1) Log into the forms tier. 2) Set the applications environment 3) Ensure that the $FORMS_PATH includes $AU_TOP/resource and $AU_TOP/resource/stub, for example echo $FORMS_PATH /u01/oracle/DEV/apps/apps_st/appl/au/12.0.0/resource: /u01/oracle/DEV/apps/apps_st/appl/au/12.0.0/resource/ stub 4) Compile the form a)- If you are using forms customizations (CUily: verdana,geneva;">1) Log into the forms tier. 2) Set the applications environment 3) Ensure that the $FORMS_PATH includes $AU_TOP/resource and $AU_TOP/resource/stub, for example echo $FORMS_PATH /u01/oracle/DEV/apps/apps_st/appl/au/12.0.0/resource: /u01/oracle/DEV/apps/apps_st/appl/au/12.0.0/resource/ stub 4) Compile the form a)- If you are using forms customizations (CUSTOM.pll) then run the command below to compile the form. frmcmp_batch.sh module=<path to fmb file> userid=APPS/APPS output_file=

<full path to fmx output file> module_type=form compile_all=special For eg:frmcmp_batch.sh module=/u01/oracle/TEST/apps/apps_st/appl/au/12.0.0/ forms/US/ XXX.fmb userid=APPS/APPS output_file=/u01/oracle/TEST/apps/apps_st/appl/inv/ 12.0.0/forms/US/XXX.fmx module_type=form compile_all=special b) If you are NOT using forms customizations, then run the command below to compile the form. frmcmp_batch.sh module=<path to fmb file> userid=APPS/APPS output_file= <full path to fmx output file> module_type=form For example.. frmcmp_batch.sh module=/u01/oracle/TEST/apps/apps_st/appl/au/12.0.0/ forms/US/ XXX.fmb userid=APPS/APPS output_file=/u01/oracle/TEST/apps/apps_st/appl/inv/ 12.0.0/forms/US/XXX.fmx module_type=form How To Trace a Concurrent Request And Generate TKPROF Enable Tracing For The Concurrent Manager Program Select the Enable Trace Checkbox

Note : Checking the Trace Check box on the Concurrent Program gives an Event 10046 Level 8 trace. So even if the trace is set for Binds and Waits on the Submission form once the concurrent program is encountered in the trace it will reset to level 8 so no binds will be present in the trace after that point. Turn On Tracing Responsibility: System Administrator Navigate: Profiles > System Query Profile Option Concurrent: Allow Debugging Set profile to Yes Run Concurrent Program With Tracing Turned On Logon to the Responsibility that runs the Concurrent Program In the Submit Request Screen click on Debug Options (B) Select the Checkbox for SQL Trace

If the Debug option is greyed out & not updateable set the profile Concurrent: Allow Debugging to Yes 2. Find Trace File Name Run the following SQL to find out the Raw trace name and location for the concurrent program. The SQL prompts the user for the request id prompt accept request prompt 'Please enter the concurre nt request id for the appropriate concurrent pro gram:' promptcolumn traceid format a8 column tracename format a80 column user_concurrent_program_name format a40 column execname format a15 column enable_trace format a12 set lines 80 set pages 22 set head offSELECT 'Request id: '||request_id , 'Trace id: '||oracle_Process_id,

'Trace Flag: '||req.enable_trace, 'Trace Name: '||dest.value||'/'||lower(dbnm.value)||'_ora_'|| oracle_process_id||'.trc', 'Prog. Name: '||prog.user_concurrent_program_nam e, 'File Name: '||execname.execution_file_name|| ex ecname.subroutine_name , 'Status : '||decode(phase_code,'R','Running') ||'-'||decode(status_code,'R','Normal'), 'SID Serial: '||ses.sid||','|| ses.serial#, 'Module : '||ses.module from fnd_concurrent_requests req, v$session ses, v$process proc, v$parameter dest, v$parameter dbnm, fnd_concurre nt_programs_vl prog, fnd_executables execname where req.request_id = &request and req.oracle_process_id=proc.spid(+) and proc.addr = ses.paddr(+) and dest.name='user_dump_dest' and dbnm.name='db_name' and req.concurrent_program_id = prog.concurrent_ program_id and req.program_application_id = prog.applicatio n_id --and prog.application_id = execname.application_i d and prog.executable_application_id = execname.application_id and prog.executable_id=execname.executable_id; To check the timeline of the request :

SELECT request_id, TO_CHAR( request_date, 'DDMON-YYYY HH24:MI:SS' ) request_date, TO_CHAR( requested_start_date,'DDMON-YYYY HH24:MI:SS' ) requested_start_date, TO_CHAR( actual_start_date, 'DD-MON-YYYY HH24:MI:SS' ) actual_start_date, TO_CHAR( actual_completion_date, 'DD-MON-YYYY HH24:MI:SS' ) actual_completion_date, TO_CHAR( sysdate, 'DDMON-YYYY HH24:MI:SS' ) current_date, ROUND( ( NVL( actual_completion_date, sysdate ) actual_start_date ) * 24, 2 ) duration FROM fnd_concurrent_requests WHERE request_id = TO_NUMBER('&p_request_id'); You may produce a complete report reference of the request ID using the Note:187504.1 bde_request.sql Process and Session info for one Concurrent Request(11.5) 3. TKPROF Trace File Once you have obtained the Raw trace file you need to format the file using TKPROF. $tkprof raw_trace_file.trc output_file explain=apps/apps sort=(exeela,fchela) sys=noWhere:raw_trace_file.trc: Name of trace file output_file: tkprof out file explain: This option provides the explain plan for the sql statements sort: This provides the sort criteria in which all sql statements will be sorted. This will bring the bad sql at

the top of the outputfile. sys=no: Disables sql statements issued by user SYS How to check whether the port is opened or not from client machine Status Check of port 8000 from Windows Operating System Go to Start menu tab. Then run cmd, which will take you to the command prompt. In the command prompt, you must type the following command and hit Enter: telnet 123.456.789.86 8000 How to check snapshot information SQL> select aat.NAME,asn.CREATION_DATE,asn.LAST_UPDATE_DATE, asn.RAN_SNAPSHOT_FLAG FROM APPS.AD_SNAPSHOTS asn, APPS.AD_APPL_TOPS aat WHERE asn.APPL_TOP_ID = aat.APPL_TOP_ID AND asn.SNAPSHOT_TYPE = C; How to check for DB links

Execute this command as sysdba SQL> select owner||,'||db_link||,'||username||,'||host||,'||created from dba_db_links; After that you can check the status of DB links to know which DB links are working/not working SQL>Select sysdate from dual@< DB_LINK> ;

How to find Release version of Oracle Apps? Login to sqlplus as apps/apps SQL> select release_name from fnd_product_groups; RELEASE_NAME 12.0.0 How to find a product version in Oracle Applications?? There are so many ways to find out the product version, but there is simple way to find it out. 1.Go to $AD_TOP/sql 2.Connect to sqlplus as apps/apps 3.Run (@adutconf.sql) 4.Output will be in same directory in the name of adutconf.lst How to find Oracle Database Blocking Session Details In first step, find SID from v$session. SQL> select process,sid, blocking_session from v$session where blocking_session is not null; PROCESS SID BLOCKING_SESSION - 1234 365 366 1234 366 365 In second step find the serial number for the Blocking Session to kill using SID SQL> select SERIAL# from v$session where SID=365; SERIAL# 130

In third step, kill the blocking session using SID and serial number SQL> alter system kill session 365,130; System altered Oracle Apps Yellow Bar Issue It can occur while copying the content from Apps to Any other application like Apps forms to notepad or excel. Troubleshooting: 1. Delete cache : Delete all the files from Temporary Internet Files and temp table. 2. Uninstall the the Jinitiator from the system (Control Panel) 3. Open the Oracle application Login to apps. Choose any responsibility. Appsbase.htm window will be opened(which initiates Applet in it). It instals the latest version available on server and now you can see Yellow Bar is disabled and you can perform Copy and Paste If you have problem while installing jinitiator.exe with the following errors. ================================================== ========== UnZipSFX 5.40 of 28 November 1998, by Info-ZIP (ZipBugs@lists.wku.edu).

extracting: adjbuild/appltop.cerextracting: adjbuild/jinit11816. exeextracting: adjbuild/oajsetup. exeextracting: autosetup.txt extracting: oajsetup.bat extracting: setup.bat oajsetup: Jinitiator version number not valid, should be 1.1.x.x Oracle Jinitiator Setup Utility Copyright (c) Oracle Corp., 2000 Usage: oajsetup [] [] The system cannot find the file specified. The batch file cannot be found. ================================================== ========== It may happen because some times the version at server may be corrupted or so. Then downlod the jinitiator.exe and version should be same as the one you have on server. How to check the version of jinitiator on your sever?

When you login to apps and choose responsibility, you can see a appsbase.htm which starts applet, there you right click and view source there you can see the version of jinitiator. Download the jinitiator from the above below path http://www.oracle.com/technology/software/products/developer/ht docs/jinit.htm Clear Cache, delete all the temporaty files from PC Install jinitiator in your PC and check the Oracle apps again. It should work now. If you still have problem, there is another tip, copy the identitydb.obj from any of your network users who are using the same Oracle application and paste in your Oracle folder where jinitiator is installed the typical path is like c:\program files\oracle\identitydb.obj How to recover the Oracle Applications context file The Oracle Applications context file can be recovered by running the adclonectx.pl script. perl /clone/bin/adclonectx.pl retrieve On being prompted for the context file to be retrieved, select the option of retrieving the Applications tier context file that has been lost and retrieve it to the default location specified by the script.

The above command can be used only when INST_TOP the is still intact. In case the has also been lost accidentally, the Applications tier context file may be retrieved as follows: Execute the following command on the Database tier: perl /appsutil/clone/bin/adclonectx.pl retrieve On being prompted for the context file to be retrieved, select the option of retrieving the Applications tier context file that has been lost. While confirming the location for the context file, set it to any existing directory with write permission. Once the context file has been generated in the specified location, move it to the location specified for the context file in the context variable s_contextfile. How to find Oracle Apps password in 11i and R12?? The below methog helps us to find out when we lost the Apps password. Please note you need have system password to perform the below actions. The below method is not suggested for Production or Critical systems. Login to Middle Tier as ap user $cd $FND_TOP/patch/115/sql $cp AFSCJAVS.pls AFSCJAVS.pls.orig Add following lines to the AFSCJAVS.pls file CREATE OR REPLACE PACKAGE apps.fnd_web_sec AS function decrypt(key in varchar2, value in varchar2) return varchar2; $sqlplus system/ @AFSCJAVS.pls Package created. Commit complete.

As system excute the following to find out if anything marked as invalid. SQL> show user USER is "SYSTEM" SQL>col OBJECT_NAME for a30; set line 200; select object_name,object_type,status,owner from dba_objects where object_name='FND_WEB_SEC'; SQL>col OBJECT_NAME for a30; set line 200; select object_name,object_type,status,owner from dba_objects where object_name='FND_WEB_SEC'; OBJECT_NAME OBJECT_TYPE STATUS OWNER FND_WEB_SEC PACKAGE VALID APPSFND_WEB_SEC PACKAGE BODY INVALID APPS SQL> alter PACKAGE apps.FND_WEB_SEC compile body; Package body altered. If there are any invalids compile them. Obtain Guest user ID and password. As system excute the following. SQL> show user USER is "SYSTEM" SQL> select profile_option_value from apps.fnd_profile_option_values where profile_option_id = (select profile_option_id from apps.fnd_profile_options where profile_option_name='GUEST_USER_PWD'); PROFILE_OPTION_VALUEGUEST/ORACLE SQL> show user USER is "SYSTEM" SQL> create synonym FND_WEB_SEC_TEST for apps.FND_WEB_SEC; Synonym created. SQL> show user USER is "SYSTEM"

SQL> create synonym FND_WEB_SEC_TEST for apps.FND_WEB_SEC; Synonym created. Now Obtain Apps password using the below sql SQL> SELECT(SELECTfnd_web_sec_test.decrypt('GUEST/ORA CLE',encrypted_foundation_password)FROM dual)AS APPS_PASSWORDFROMapps.fnd_userWHEREuser_name like 'GUEST'; 2 3 4 5 6 7 8 9 APPS_PASSWORDAPPS -- WOW we got the Apps password now SQL> drop synonym FND_WEB_SEC_TEST; Synonym dropped. -bash-3.2$ sqlplus apps/ @AFSCJAVS.pls Package created. Commit complete. Please find the below explanation for the above steps: A) We know in Oracle Applications passwords are stored in FND_USER and FND_ORACLE_USERID tables,The FND_USER table stores application user account passwords and the FND_ORACLE_USERID table stores internal Oracle Applications database account passwords,Both tables use the same encryption algorithm to protect the passwords. The FND_USER table contains all the application accounts. There are two password columns in this table: ENCRYPTED_FOUNDATION_PASSWORD and ENCRYPTED_USER_PASSWORD. Column Value Encryption Key ENCRYPTED_FOUNDATION_PASSWORD APPS username/password ENCRYPTED_USER_PASSWORD user APPS password The 2 columns as...

a)If we know the username/password we can get the Apps Password (ENCRYPTED_FOUNDATION_PASSWORD)b)If we know the Apps password we can get any users password (ENCRYPTED_USER_PASSWORD) B) To decrypt and verify user passwords Oracle Apps uses FND_WEB_SEC package in Apps.The DECRYPT function in the FND_WEB_SEC package is a local function and cannot be called from outside the package. So to make the function available outside the package, we have altered the AFSCJAVS.pls above. How to find rapidwiz version Go to: cd startCD\Disk1\rapidwiz type: rapidwiz Version Output will be: Oracle Applications Rapid Install Wizard Version 12.0.0.22 (c) Copyright 2000-2006 Oracle Corporation. All rights reserved. Press any key to continue Invalid Objects Query SQL> select count(*) from dba_objects where status=INVALID; COLUMN object_name FORMAT A30 SELECT owner, object_type, object_name, status FROM dba_objects WHERE status = INVALID ORDER BY owner, object_type, object_name; FNDCPASS SYNTAX AND TROUBLE SHOOTING In Oracle Applications, we have an FND functionality for changing the passwords for application users, product schema passwords, and APPS and APPLSYS. The location of FNDCPASS utility is $FND_TOP/bin directory.

FNDCPASS Usage: FNDCPASS logon 0 Y system/password mode username new_password where logon is username/password[@connect] system/password is password of the system account of that database mode is SYSTEM/USER/ORACLE username is the username where you want to change its password new_password is the new password in unencrypted format example 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 If you just type FNDCPASS and press enter, it will give you these details. The first usage FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME is for changing the password for apps and applsys. These are the database schema users (most important for application to work). Password for both these users should be in synch. You can change the password of these users using this command. Note that this is the only way to change the password for apps and applsys. Please do not try any other method for changing apps and applsys password. Oracle recomends using FNDCPASS only to change apps and applsys password. Also note that using this command will change the password for both apps and applsys. Following activities will take place (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 applsyss password in FND_ORACLE_USERID table. (5) Update apps password in FND_ORACLE_USERID table. Also changes are made in DBA_USERS table. The second usage FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1 is for changing password for any other product schema like MSC, GL etc. Following activities will take place (1) update GLs 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 GLs password. The third usage FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME is for changing the application level passwords like sysadmin etc used for logging into application. Following activities will take place (1) update VISIONs 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 When you run FNDCPASS command it will check the integrity of all schema password in the application. If any of the password is corrupt then this will through and error and will not change the password.

The tables that it uses is FND_USER and FND_ORACLE_USERID. All the application passwords and schema passwords are stored in these two tables. Ofcourse DBA_USERS will have the schema users and password stored as well. When we run FNDCPASS it will update all the above 3 tables. Best usage of FNDCPASS Before using FNDCPASS: 1) Always keep the back of tables FND_USER and FND_ORACLE_USERID. You can take back of these tables using CREATE TABLE AS SELECT * FROM . You must have backup of these tables before running FNDCPASS. In case if FNDCPASS fails then it might corrupt the passwords of your application and worst can happen that the application wont come up. So always be cautions about this command. 2) If possible also keep an export dump of these two tables. 3) verify each arguement you are providing to FNDCPASS. Like verify that apps and system passwords you are providing is correct. 4) Never update apps, applsys or any schema password directly from database using the alter command. Always use FNDCPASS. System password can be set directly using ALTER command in database. Issue with APPLSYS and APPS password Issue 1: As you know that apps and applsys password should be in synch and should be changed using FNDCPASS.

There can be situation where a novice user changes applsys password from the backend database. In that case when you try to start the services it will show following error APP-FND-01496: Cannot access application ORACLE password Cause: Application Object Library was unable access your ORACLE password. You can even reproduce this issue (ofcourse after taking the backup of FND_USER and FND_ORACLE_USERID table) using the following steps 1. Use the ALTER USER command to change the APPLSYS password 2. Try to run the adstrall.sh script to start Apps services. 3. You will get an error Cannot complete applications logon. You may have entered an invalid applications password, or there may have been a database connect error. 4. Then try FNDCPASS to fix password and you will get the error the APP-FND-01496 error. If this situation happens then you cannot access the application. Infact the services even wont start. Resolution to such problem is to rollback the 2 tables FND_USER and FND_ORACLE_USERID. Once you rollback the tables, apps and applsys passwords will be in synch and password will be older one. You can then run FNDCPASS and change the password. Issue 2: Some times when you run FNDCPASS, you get following error

APP-FND-01502: Cannot encrypt application ORACLE password Cause: Application Object Library was unable encrypt your ORACLE password. Action: Contact your support representative. (ORACLEUSER=APPS_SERV) The error comes because the table fnd_oracle_userid contain rows for schemas that does not exist. Those rows must be deleted from the table. Use the following query to get the details of the schema that doest not exists select * from fnd_oracle_userid where oracle_username not in (select username from all_users); The rows returned by this query can be deleted from FND_ORACLE_USERID table. This will resolve this issue. Issue 3: There can be situation where users has update APPLSYS password using ALTER command in database directly and also you dont have backup of those tables. Under such situation, it is very difficult to recover the application and make it working. Still following methodology is proposed which might help you to restore the password back and make your application work fine. For this to work you should have some other application (may be debug or UAT) which is having the same passwords or default passwords for schemas. If you have such application the following the below steps in the application which is affected by password mismatch. This method is for resetting apps and applsys passwords. Below are the SQL statements that will help you reset the APPS and

APPLSYS passwords to APPS, the APPLSYSPUB password to PUB, and the SYSADMIN password to SYSADMIN. WARNING: This procedure will cause all user passwords to become invalid. ALL users passwords will need to be reset through the sysadmin responsibility. Step 1) Reset the Oracle User IDs Open a SQL*Plus as SYSTEM and reset the passwords for the APPS, APPLSYS, and the APPLSYSPUB Oracle user ID: ALTER USER apps IDENTIFIED BY apps; ALTER USER applsys IDENTIFIED BY apps; ALTER USER applsyspub IDENTIFIED BY pub; Step 2) Backup the FND_ORACLE_USERID and FND_USER tables (even though these tables are right now corrupted, do take a backup. You can restore the same when ever you want). Open a SQL*Plus session as APPLSYS and backup the tables: create table FND_ORACLE_USERID_BAK as (select * from FND_ORACLE_USERID); create table FND_USER_BAK as (select * from FND_USER); Step 3) Reset the APPS and APPLSYS application encrypted passwords Open a SQL*Plus session as APPLSYS and update the FND_ORACLE_USERID table. update FND_ORACLE_USERID set ENCRYPTED_ORACLE_PASSWORD = ZGA34EA20B5C4C9726CC95AA9D49EA4DBA8EDB705CB767

3E645EED570D5447161491D78D444554655B87486EF537ED9 843C8 where ORACLE_USERNAME in (APPS, APPLSYS); commit; This encrypted string we are updating is the default encrypted string for apps. So if your application is having apps password the encrypted string will look like this. We are updating this encrypted string here directly. Verify the table update: select ENCRYPTED_ORACLE_PASSWORD from FND_ORACLE_USERID where ORACLE_USERNAME IN (APPS, APPLSYS); Step 4) Reset the APPLSYSPUB application encrypted password Open a SQL*Plus session as APPLSYS and update the FND_ORACLE_USERID table. update FND_ORACLE_USERID set ENCRYPTED_ORACLE_PASSWORD = ZG31EC3DD2BD7FB8AD2628CE87DDDF148C1D2F248BE88B E987FDF82830228A88EF44BC78BC7A9FAD4BFB8F09DAD49 DF7280E where ORACLE_USERNAME = (APPLSYSPUB); commit; The above encrypted string is the encrypted string for password pub. If your applsyspub password is pub then the encrypted string in FND_ORACLE_USERID will look like this. Verify the table update: select ENCRYPTED_ORACLE_PASSWORD from FND_ORACLE_USERID where ORACLE_USERNAME = APPLSYSPUB;

Once these updates are done, try your luck by running FNDCPASS and it should work fine. How to know how many users connected to Oracle Applications 1: Use this SQL statement to count number of concurrent_users connected to Oracle apps: select count(distinct d.user_name) from apps.fnd_logins a, v$session b, v$process c, apps.fnd_user d where b.paddr = c.addr and a.pid=c.pid and a.spid = b.process and d.user_id = a.user_id and (d.user_name = USER_NAME OR 1=1) 2: Use this SQL statement to count number of users connected to Oracle Apps in the past 1 hour. select count(distinct user_id) users from icx_sessions where last_connect > sysdate 1/24 and user_id != -1; 3: Use this SQL statement to get number of users connected to Oracle Apps in the past 1 day. select count(distinct user_id) users from icx_sessions where last_connect > sysdate 1 and user_id != -1; 4: Use this SQL statement to get number of users connected to Oracle Apps in the last 15 minutes. select limit_time, limit_connects, to_char(last_connect, DD-MONRR HH:MI:SS) Last Connection time, user_id, disabled_flag from icx_sessions where last_connect > sysdate 1/96;

How to find applied patches for R12 EBS Oracle Applications One key task for Oracle Application EBS Database Administrators is to perform patching on regular basis for maintenance pack upgrades and bug fixes. However, with busy work schedules, keeping track of applied patches can be a challenge. Oracle R12 Applications uses the following tables under the APPS schema to track the status for bug fixes and patches with adpatch: ad_applied_patches ad_bugs SQL> desc ad_applied_patches Name Null? Type ----------------------------------------- -------- ---------------------------APPLIED_PATCH_ID NOT NULL NUMBER RAPID_INSTALLED_FLAG VARCHAR2(1) PATCH_NAME NOT NULL VARCHAR2(120) PATCH_TYPE NOT NULL VARCHAR2(30) MAINT_PACK_LEVEL VARCHAR2(30) SOURCE_CODE NOT NULL VARCHAR2(3) CREATION_DATE NOT NULL DATE CREATED_BY NOT NULL NUMBER LAST_UPDATE_DATE NOT NULL DATE LAST_UPDATED_BY NOT NULL NUMBER IMPORTED_FLAG VARCHAR2(1) IMPORTED_FROM_DB VARCHAR2(30) IMPORTED_ID NUMBER MERGE_DATE DATE DATA_MODEL_DONE_FLAG VARCHAR2(1)

A useful query to track status of applied patches for the EBusiness Suite with Oracle EBS is the following: SQL> select applied_patch_id, last_update_date from ad_applied_patches order by last_update_date; APPLIED_PATCH_ID LAST_UPDATE_DAT ---------------- --------------41444 03-NOV-09 41445 03-NOV-09 42444 09-NOV-09 42445 09-NOV-09 43444 18-NOV-09 44444 24-NOV-09 45444 30-NOV-09 45445 30-NOV-09 45446 30-NOV-09 45447 30-NOV-09 45448 03-DEC-09 APPLIED_PATCH_ID LAST_UPDATE_DAT ---------------- --------------45449 03-DEC-09 45450 03-DEC-09 45451 03-DEC-09 Hope this quick tip helps fellow Oracle Apps DBAs.