Escolar Documentos
Profissional Documentos
Cultura Documentos
Architecture
AS10g in Rel 12 is conceptually similar to Rel 11i, in that there is an Apache listener which receives HTTP requests from clients. If the request is to process some Java code it will pass the request to a separate JVM process, which will provide the response back to the Client. In R12 this JVM is provided for by OC4J
Additionally, the Apache and OC4J processes are not started independently but are started, stopped and managed by the OPMN process
This means that the OPMN process must be started first, then you ask OPMN to startup Apache and any OC4J processes that are needed. R12 creates 3 OC4J instances: OACore - runs OA Framework-based applications Forms - runs Forms-base applications OAFM (Oracle Apps Fusion Middleware) - runs web services, mapviewer, ascontrol
.
adautocfg.sh - run autoconfig adstpall.sh - stop all services adstrtal.sh - start all services adapcctl.sh - start/stop/status Apache only adformsctl.sh - start/stop/status OC4J Forms adformsrvctl.sh - start/stop/status Forms server in socket mode adoacorectl.sh - start/stop/status OC4J oacore adoafmctl.sh - start/stpp/status OC4J oafm adopmnctl.sh - start/stop/status opmn adalnctl.sh - start/stop RPC listeners (FNDFS/FNDSM) adcmctl.sh - start/stop Concurrent Manager gsmstart.sh - start/stop FNDSM jtffmctl.sh - start/stop Fulfillment Server adpreclone.pl - Cloning preparation script adexecsql.pl - Execute sql scripts that update the profiles in an AutoConfig run java.sh - Call java executable with additional args, (used by opmn, Conc. Mgr)
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/$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/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 opmnctlwhich 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 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 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/log (adalnctl.txt, adapcctl.txt, adcmctl.txt, adformsctl.txt, adoacorectl.txt, adoafmctl.txt,adopmnctl.txt, ads trtal.log, jtffmctl.txt )
The startup/shutdown scripts for EBiz are located in directory defined by the environment variable $ADMIN_SCRIPTS_HOME Most of these scripts will setup the required environment variables by sourcing in the environment file located at $INST_TOP/ora/10.1.3/$APPLFENV The scripts we will investigate further in this document are adstrtal.sh : Starts all enabled services adopmnctl.sh : Start just the OPMN process adapcctl.sh : Startup Apache listener adoacorectl.sh : Startup "oacore" OC4J adformsctl.sh : Startup "forms" OC4J adoafmctl.sh : Startup "oafm" OC4J
The order of the entries in the $CONTEXT_FILE determines the order in which the enabled services are started The "ctrl_script" entry defines the script that is executed to start the service, i.e. this links to the individual ad startup script For example, given the following section in the $CONTEXT_FILE <oa_service_group type="root" title="Root Service"> <oa_service_group_status oa_var="s_root_status">enabled</oa_service_group_sta tus> <oa_service type="opmn"> <oa_service_name oa_var="s_opmnname">Oracle Process Manager for VIS_myHost</oa_service_name> <oa_service_status oa_var="s_opmnstatus">enabled</oa_service_status> <oa_service_log oa_var="s_opmnlog">/oracle/VIS/inst/apps/VIS_myHost/logs/appl/admin/log/adopmnctl.txt</ oa_service_log> <oa_service_env> <oa_env_include>web_home</oa_env_include> </oa_service_env> <timeout oa_var="s_opmntimeout">100</timeout> <ctrl_script oa_var="s_opmnctrl" osd="unix">/oracle/VIS/inst/apps/VIS_myHost/admin/scripts/adopmnctl.sh</ctrl_scri pt> </oa_service> </oa_service_group> 1. adstrtal.sh will see the "oa_service_group_status" is set to "enabled" so looks inside this section. 2. "oa_service_status" is also set to "enabled" so the script defined in the "ctrl_script" line (i.e. "adopmnctl.sh") will be executed with "start" passed as an argument to the script 3. The "s_opmntimeout" variable specifies that the script will be given 100 seconds to complete the startup process, otherwise will generate an error. Each service has it's own timeout variable
This is an Ebiz specific wrapper script which sets the environment then eventually calls: $ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl Output from the script is captured in log file $LOG_HOME/appl/admin/log/adopmnctl.txt
Also check the OPMN log files $LOG_HOME/ora/10.1.3/opmn directory opmn.dbg opmn.out opmn.log OPMN is using the configuration file located at $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml This file defines the "ias-component" that are being managed and control information about these modules. For example:...................... <ias-component id="IASPT" status="disabled"> ...................... ...................... <ias-component id="OC4J"> <process-type id="home" module-id="OC4J" status="disabled" ...................... ...................... <process-type id="oacore" module-id="OC4J" status="enabled" workingdir="$ORACLE_HOME/j2ee/home"> <module-data> <category id="start-parameters"> <data id="java-options" value="-server -verbose:gc -Xmx512M ............/> <data id="java-bin" value="/oracle/VIS/inst/apps/VIS_myHost/admin/scripts/java.sh"/> <data id="oc4j-options" value="-out ............./> </category> <category id="stop-parameters"> <data id="java-options" value="-server -verbose:gc -Xmx512M ............/> </category> </module-data> <start timeout="600" retry="2"/> <stop timeout="120"/> <restart timeout="720" retry="2"/> <port id="default-web-site" range="21500-21504" protocol="ajp"/> <port id="rmi" range="20000-20004"/> <port id="jms" range="23000-23004"/> <process-set id="default_group" numprocs="2"/> </process-type> NOTE - If the service is enabled in CONTEXT.xml file, but disabled in opmn.xml then the eBiz script will run and complete successfully, but the service will not be started by OPMN. The log files will show why the service is not started in this case You can check the OPMN processes are running with the following command:ps -ef | grep opmn | grep -v grep There should be two processes listed If only the OPMN service is started, then you would expect to see opmn listening on some ports. You can use the following script to check the ports running:####################################################### ##############
### START OF SCRIPT ### ####################################################### ############## ( echo "Run started " date # Send script output to screen and log file OPMN_PORTS=`cat $INST_TOP/ora/10.1.3/opmn/conf/opmn.xml|grep "port local"|awk ' BEGIN { FS="\"" } { print $2, $4, $6 }'` for ports in $OPMN_PORTS do echo "Checking for port $ports" netstat -an | grep $ports done ## echo "Run completed " date ) 2>&1 | tee mzOPMNports.txt ####################################################### ############## ### END OF SCRIPT ### ####################################################### ############## The output from this should be something like this:Checking for port 6100 tcp 0 0 localhost.localdomain:6100 *:* LISTEN Checking for port 6200 tcp 0 0 myHost.uk.oracle.co:6200 *:* LISTEN Checking for port 6500 tcp 0 0 localhost.localdomain:6500 *:* LISTEN tcp 0 0 myHost.uk.oracle.co:6500 *:* LISTEN Additional Debugging if required 1. Remove the "states" files If having startup problems, it can sometimes help to shutdown the services, then remove the "states" files to ensure a fresh startup:1. Shutdown eBiz AS10g services (adstpall.sh) 2. Run the following command to clear out the states files rm $ORA_CONFIG_HOME/10.1.3/opmn/logs/states/* 3. Restart eBiz Services and confirm if problem persists 2. Sometimes starting OPMN with the eBiz wrapper script fails, but there is no obvious reasons given in the log files. In this case the next step is to enable the OPMN debug output Refer Note 395730.1 "How to Enable OPMN Logging in OracleAS 10g Rel 3 (10.1.3)?" which describes how to enable additional debug messages. The basic steps are repeated below for your convenience:-
any order, but eBiz will start them in the order they are listed. Also note that these scripts will first check to see if OPMN is running, and if not will try to start OPMN first.
This is an Ebiz specific wrapper script that sets the environment then executes the script:$ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl start $ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl startproc type=ohs Output from the script is captured in the log file located at $LOG_HOME/appl/admin/log/adapcctl.txt The OPMN log files that are updated by starting Apache are located in $LOG_HOME/ora/10.1.3/opmn directory: opmn.dbg opmn.out opmn.log HTTP_Server~1 Apache log files are located in the $LOG_HOME/ora/10.1.3/Apache directory: ssl_engine_log access_log.999999999 error_log.999999999 The configuration files related to Apache are $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.conf (and all the "include" files) You can check the status of the service via OPMN using the command:$ADMIN_SCRIPTS_HOME/adapcctl.sh status and/or $ADMIN_SCRIPTS_HOME/adopmnctl.sh status If only the Apache service has been started, the output should look something like this:You are running adopmnctl.sh version 120.4.12000000.3 Checking status of OPMN managed processes... Processes in Instance: VIS_myHost.myHost.oracle.com -------------------+--------------------+---------+--------ias-component | process-type | pid | status -------------------+--------------------+---------+--------OC4J | oafm | N/A | Down OC4J | forms | N/A | Down OC4J | oacore | N/A | Down OC4J | oacore | N/A | Down HTTP_Server | HTTP_Server | 13538 | Alive
adopmnctl.sh: exiting with status 0 adopmnctl.sh: check the logfile /oracle/VIS/inst/apps/VIS_myHost/logs/appl/admin/log/adopmnctl.txt for more information ... You can also verify the Apache processes are running with the following command ps -ef | grep `cat $INST_TOP/pids/10.1.3/Apache/httpd.pid`| grep -v grep Check TCP port is being LISTENed to with the following netstat -an | grep `grep "^Listen" $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.conf | awk '{print $2}'` URLs that should now work (with just Apache listener running) http://HOST.DOMAIN:PORT/OA_MEDIA/FNDLOGOL.gif http://HOST.DOMAIN:PORT/ Any URL for Java code should fail at this stage. For example this URL will fail: http://myHost.oracle.com:8000/OA_HTML/ServletPing
This is an Ebiz specific wrapper script that sets the environment then calls: $ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl start $ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl startproc type=oc4j instancename=oacore Output from the script is captured in log file $LOG_HOME/appl/admin/log/adoacorectl.txt
The OC4J log files are located in the $LOG_HOME/ora/10.1.3 directory:opmn/OC4J~oacore~default_group~1 opmn/oacore_default_group_1/oacorestd.err opmn/oacore_default_group_1/oacorestd.out j2ee/oacore/oacore_default_group_1/jms.log j2ee/oacore/oacore_default_group_1/application.log j2ee/oacore/oacore_default_group_1/rmi.log j2ee/oacore/oacore_default_group_1/server.log j2ee/oacore/oacore_default_group_1/global-application.log j2ee/oacore/oacore_default_group_1/log.xml j2ee/oacore/oacore_default_group_1/system-application.log You can check the status of the services via OPMN using the command:$ADMIN_SCRIPTS_HOME/adopmnctl.sh status You can also check OACore JVM process(es) are running using the following commands ps -ef | grep CLIENT | grep oacore OR ##### Start ##### ( for corePID in `$ADMIN_SCRIPTS_HOME/adopmnctl.sh status | grep oacore | cut --delimiter=\| -f 3` do ps -ef | grep $corePID | grep -v grep done ) 2>&1 | tee mzOACoreProcs.txt ##### End ##### You can check which TCP port is being LISTENed to by the OACORE JVM(s):####################################################### ####### ### START OF SCRIPT ### ####################################################### ####### ( echo "==========================================" echo "Run started " date echo "==========================================" for fn in `grep "^oacore" $ORA_CONFIG_HOME/10.1.3/opmn/logs/states/* | cut --delimiter=\: -f 1` do echo $fn echo "Check the following ports are listening..." awk ' { if ( FNR>=15 && FNR<=17) print $1 } ' $fn echo "------------------------------------------" for corePort in `awk ' { if ( FNR>=15 && FNR<=17) print $1 } ' $fn` do netstat -an | grep $corePort | grep LISTEN done echo "------------------------------------------" done
echo "Run completed " date echo "==========================================" ) 2>&1 | tee mzOACorePorts.txt ####################################################### ####### ### END OF SCRIPT ### ####################################################### ####### Test URL that should work now OACORE OC4J is started:http://HOST.DOMAIN:PORT/OA_HTML/ServletPing http://HOST.DOMAIN:PORT/OA_HTML/OAInfo.jsp http://HOST.DOMAIN:PORT/OA_HTML/jsp/fnd/aoljtest.jsp http://HOST.DOMAIN:PORT/OA_HTML/OA.jsp?OAFunc=OAHOMEPAGE http://HOST.DOMAIN:PORT/ The configuration files are numerous, so only a couple of the main files are mentioned here:$ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml Picks up the following entries start-parameters port id $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/config/server.xml Top level OC4J configuration file
Edit the file $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/applicationdeployments/oacore/html/orion-web.xml and change the section: <init-param> <param-name>debug_mode</param-name> <param-value>false</param-value> to be <init-param> <param-name>debug_mode</param-name> <param-value>true</param-value> This change will output the stack trace when certain runtime exceptions occur This is documented in "Oracle Containers for J2EE Support for JavaServer Pages Developer's Guide 10g Release 3 (10.1.3) "http://download.oracle.com/docs/cd/B25221_04/web.1013/b14430/devconfig.htm#sthref20 3 See additional detail in the OPMN Status output The following command shows additional information $ORA_CONFIG_HOME/10.1.3/opmn/bin/opmnctl status -l The output will look similar to shown below:Processes in Instance: VIS_myHost.myHost.oracle.com -------------------+--------------------+---------+----------+------------+----------+-----------+-----ias-component | process-type | pid | status | uid | memused | uptime | ports -------------------+--------------------+---------+----------+------------+----------+-----------+-----OC4J | oafm | 25964 | Alive | 1211722164 | 138596 | 0:04:39 | jms:24500,ajp:25000,rmi:25500 OC4J | forms | 25899 | Alive | 1211722163 | 132904 | 0:04:48 | jms:23500,ajp:22000,rmi:20500 OC4J | oacore | 25829 | Alive | 1211722162 | 177344 | 0:05:00 | jms:23000,ajp:21500,rmi:20000 HTTP_Server | HTTP_Server | 25766 | Alive | 1211722161 | 120368 | 0:04:37 | https1:4443,http1:8000 ASG | ASG | N/A | Down | N/A | N/A | N/A | N/A
$CONTEXT_FILE \ $ADMIN_SCRIPTS_HOME \ $APPL_TOP/*.env \ $ORA_CONFIG_HOME/10.1.3/Apache \ $ORA_CONFIG_HOME/10.1.3/config \ $ORA_CONFIG_HOME/10.1.3/j2ee/oacore \ $ORA_CONFIG_HOME/10.1.3/j2ee/forms \ $ORA_CONFIG_HOME/10.1.3/j2ee/oafm \ $ORA_CONFIG_HOME/10.1.3/network \ $ORA_CONFIG_HOME/10.1.3/opmn \ $INST_TOP/ora/10.1.3/*.env b. Log files are located in /oracle/<INSTANCE>/inst/apps/<INSTANCE>_<HOST>/logs, which is configured as $LOG_HOME environment variable i) For test systems with little activity, the easiest way is to simply gather ALL log files tar cvf logFiles_`hostname`.tar $LOG_HOME ii) Production systems or busy test systems will likely have HUGE number of log files we don't want to see.... so would need to be more selective tar cvf ApacheLogFiles_`hostname`.tar $LOG_HOME/ora/10.1.3 tar cvf AppsLogFiles_`hostname`.tar $LOG_HOME/appl/admin $LOG_HOME/appl/rgf iii) An alternative command for the ApacheLogFiles is listed below, which gathers only the log files changed in the last 24 hours Linux find $LOG_HOME/ora/10.1.3 -type f -mtime -1>m.tmp; tar cvf ApacheLogFiles_`hostname`.tar -files-from=m.tmp Solaris find $LOG_HOME/ora/10.1.3 -type f -mtime -1 > m.tmp; tar cvf ApacheLogFiles_`hostname`.tar -I m.tmp