Starting and Stopping Fusion Applications the Right Way

Introduction

Starting and stopping Fusion Applications is a complex task that involves invoking commands for multiple components (including WebLogic domains, OPMN-Managed instances, Database instances, 3rd Party software, etc.) in multiple hosts. This process may take several minutes and ensuring that it is done completely and correctly is essential for regular maintenance activities (patching, backup, etc.) as well as full operation of the Fusion Applications environment.

Aside from the tools that are part of the technology components in Fusion Applications (e.g., OPMN, WebLogic domain scripts, node manager, etc.), Fusion Applications ship with a tool called fastartstop which makes the lifecycle processes a lot simpler by enabling an administrator to start/stop/bounce multiple Fusion WebLogic domains running on different servers, all with a single command on a single host. While this essential tool does most of the work involved in bringing up and down the Fusion Applications environment, it does not do all, so this document aims to explain all tasks involved in starting and stopping a Fusion Applications environment completely.

This post focuses on non-highly available environments (non-HA). For HA environments, you should perform similar tasks on the additional hosts and may use a tool such as srvctl to start the nodes on the RAC database.

Details

Components

The tables below list the components that make up a complete Fusion Applications install:

Identity Management

Component Name Notes Install Types
IDM Database
  • 1 or 2 databases (OID and OIM) depending on the install type. Can be installed on a single Oracle_Home or different ones
IDM EDG for FA
OID
  • 1 or 2 instances (Policy and Identity) depending on the install type (for non-HA environments)
  • OPMN-managed
IDM EDG for FA
OVD
  • 1 instance (for non-HA environments)
  • OPMN-managed
IDM EDG for FA
OIF
  • Not mandatory
  • 1 instance (for non-HA environments)
  • OPMN-managed
IDM EDG for FA
IDM WLS Domains
  • 1 or 2 domains (for Split-Domain topology)
IDM EDG for FA
IDM Node Managers
  • 1 on each host running IDM Domains
IDM EDG for FA
IDM OHS
  • 1 instance (for non-HA environments)
  • OPMN-managed
IDM EDG for FA

Fusion Applications

Component Name Notes Install Types
FA Database
  • 1 database
All
FA OHS
  • 1 instance (for non-HA environments)
  • OPMN-managed
All
BI Instance
  • 1 instance (for non-HA environments)
  • OPMN-managed
All
GOP
  • 1 instance (for non-HA environments)
  • OPMN-managed
SCM only
IIR
  • 1 instance (for non-HA environments)
CRM only
FA WLS Domains
  • 1 domain for each Product Family (up to 9): CommonDomain, CRMDomain, HCMDomain, FinancialDomain, SCMDomain, ICDomain, ProcurementDomain, ProjectsDomain, BIDomain
  • Domains installed depend on the offering selected during Provisioning
  • Can be started/stopped/bounced with a single command using the fastartstop tool
All
FA Node Manager
  • 1 on each FA server with WLS Domains
All

Starting Fusion Applications

The table below lists the tasks to be performed when starting Fusion Applications, in order of execution. Note that the sample code is provided as an example and will most likely be different depending on how your Fusion Applications environment was installed.

The following environment variables are used:

  • ORACLE_HOME: used for starting up Oracle database instances. It points at the Oracle database home and varies depending on the database.
  • ORACLE_SID: used for starting up Oracle database instances. It varies depending on the database.
  • IDM_MW_HOME: Middleware home where Identity Management is installed. Depending on the install topology chosen during install, there may be more than one Middleware home.
  • IDM_INSTANCE_HOME: Directory where AS Instances for OID, OVD, OHS are installed. Depending on the topology chosen during install, AS Instances may not all be located in the same directory.
  • FA_BASE: Directory where Fusion Applications are installed. Normally contains the “fusionapps” and “instance” directories (with installation defaults).
Component Sample Startup Code
Start Identity Management
Database instance(s) and DB Listener(s) export ORACLE_HOME=<oracle_home>
export ORACLE_SID=<oracle_sid>
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/sqlplus / as sysdba
> startup
Node Manager(s) $IDM_MW_HOME/wlserver_10.3/server/bin/startNodeManager &
disown
OID $IDM_INSTANCE_HOME/oid_inst1/bin/opmnctl startall
OVD $IDM_INSTANCE_HOME/ovd_inst1/bin/opmnctl startall
OIF (if present) $IDM_INSTANCE_HOME/oif_inst1/bin/opmnctl startall
WebLogic AdminServer(s) $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmStart(‘AdminServer’);
SOA $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmStart(‘soa_server1’);* If already connected, simply run nmStart
OIM $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmStart(‘oim_server1’);* If already connected, simply run nmStart
OAM $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmStart(‘oam_server1’);* If already connected, simply run nmStart
ODSM $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmStart(‘wls_ods1’);
> exit()* If already connected, simply run nmStart
IDM OHS $IDM_INSTANCE_HOME/oif_inst1/bin/opmnctl startall
Start Fusion Applications
Fusion Apps Database Instance and Listener export ORACLE_HOME=<db_oracle_home>
export ORACLE_SID=<db_sid>
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/sqlplus / as sysdba
> startup
Node Manager(s) on each FA server $FA_BASE/instance/nodemanager/<host_name>startNodeManagerWrapper.sh &
disown

*Always start the FA Node Manager using the command above, don’t use the regular startNodeManager

Fusion Applications Domains $FA_BASE/fusionapps/applications/lcm/ad/bin/fastartstop.sh
-Start
-all
-username weblogic_fa
-appbase $FA_BASE/fusionapps/applications
-startAdminServer true
BI Instance $FA_BASE/instance/BIInstance/bin/opmnctl startall
GOP (if present) $FA_BASE/instance/gop_1/bin/opmnctl startall
IIR (if present) $FA_BASE/InformaticaIR/bin/setfusionEnv.sh
$FA_BASE/InformaticaIR/bin/liup
$FA_BASE/InformaticaIR/bin/idsup
FA OHS $FA_BASE/instance/CommonDomain_webtier/bin/opmnctl startall

Stopping Fusion Applications

The table below lists the tasks to be performed when stopping Fusion Applications, in order of execution. Note that the sample code is provided as an example only and will most likely be different depending on how your Fusion Applications environment was installed.

Component Sample Startup Code
Stop Fusion Applications
FA OHS $FA_BASE/instance/CommonDomain_webtier/bin/opmnctl stopall
BI Instance $FA_BASE/instance/BIInstance/bin/opmnctl stopall
GOP (if present) $FA_BASE/instance/gop_1/bin/opmnctl stopall
IIR (if present) $FA_BASE/InformaticaIR/bin/setfusionEnv.sh
$FA_BASE/InformaticaIR/bin/idsdown
$FA_BASE/InformaticaIR/bin/lidown
Fusion Applications Domains $FA_BASE/fusionapps/applications/lcm/ad/bin/fastartstop.sh
-Stop
-all
-username weblogic_fa
-appbase $FA_BASE/fusionapps/applications
Fusion Apps Database Instance and Listener $ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/sqlplus / as sysdba
> shutdown immediate
> exit
Node Manager(s) on each FA server ps -ef | grep weblogic.NodeManager
kill <pid_identified_above>* There is no command or script to stop the Node Manager, so the process must be killed manually. To determine the process id, use the ps command above.
Stop Identity Management
IDM OHS $IDM_INSTANCE_HOME/ohs_inst1/bin/opmnctl stopall
SOA $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmKill (‘soa_server1’);* If already connected, simply run nmKill
* nmKill may require that the StopScriptEnabled property be set to true in the nodemanager.properties file (located in $MW_HOME/wlserver_10.3/common/nodemanager)
OIM $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmKill (‘oim_server1’);* If already connected, simply run nmKill
* nmKill may require that the StopScriptEnabled property be set to true in the nodemanager.properties file (located in $MW_HOME/wlserver_10.3/common/nodemanager)
OAM $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmKill (‘oam_server1’);* If already connected, simply run nmKill
* nmKill may require that the StopScriptEnabled property be set to true in the nodemanager.properties file (located in $MW_HOME/wlserver_10.3/common/nodemanager)
ODSM $IDM_MW_HOME/oracle_common/common/bin/wlst.sh
> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’);
> nmKill (‘wls_ods1’);* If already connected, simply run nmKill
* nmKill may require that the StopScriptEnabled property be set to true in the nodemanager.properties file (located in $MW_HOME/wlserver_10.3/common/nodemanager)
WebLogic AdminServer(s) $IDM_MW_HOME/oracle_common/common/bin/wlst.sh> nmConnect(‘nm_user’,’nm_password’,’nm_server’,’nm_port’,’IDMDomain’,’IDMDomain_path’)
> nmKill (‘AdminServer’);
> exit()* If already connected, simply run nmKill
* nmKill may require that the StopScriptEnabled property be set to true in the nodemanager.properties file (located in $MW_HOME/wlserver_10.3/common/nodemanager)
OID $IDM_INSTANCE_HOME/oid_inst1/bin/opmnctl stopall
OVD $IDM_INSTANCE_HOME/ovd_inst1/bin/opmnctl stopall
OIF (if present) $IDM_INSTANCE_HOME/oif_inst1/bin/opmnctl stopall
Database Instance(s) and DB Listener(s) export ORACLE_HOME=<oracle_home>
export ORACLE_SID=<oracle_sid>
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/sqlplus / as sysdba
> shutdown immediate
> exit
Node Manager(s) ps -ef | grep weblogic.NodeManager
kill <pid_identified_above>* There is no command or script to stop the Node Manager, so the process must be killed manually. To determine the process id, use the ps command above.

Comments

  1. Hi guys, thanks for the valuable article.

    A weird situation I have in my environment here is that, after starting all my domains with fastartstop.sh, all the admin servers are shut down again. So I have to start all and then start all again (AdminOnly), is that normal?

    Regards!

Add Your Comment