Sunday, 23 October 2011

How To Start / Stop An OBIEE 11g (11.1.1.x) Unix / Linux Environment Via Command-line

How To Start / Stop An OBIEE 11g (11.1.1.x) Unix / Linux Environment Via Command-line

Starting the environment via command-line:

The high-level manual steps are:
  • Set your environment
  • Start WLS Admin Server in the background
  • Start WLS NodeManager
  • Start WLS Managed Server
  • Start Oracle Instance
Note: init.d boot time startup scripts are not covered here.  These examples are from Oracle Enterprise Linux 5

  1. Set your environment (manually or via script). 
Note: You may use the standard environment scripts (commEnv.sh, setDomainEnv.sh, etc) ; however, these are the minimal variables necessary for these examples


MW_HOME=/[path]/[obiee11g_middleware_home]; export MW_HOME
DOMAIN_HOME=/$MW_HOME/user_projects/domains/bifoundation_domain; export DOMAIN_HOME
WL_HOME=$MW_HOME/wlserver_10.3; export WL_HOME
ORACLE_HOME=$MW_HOME/Oracle_BI1; export ORACLE_HOME
ORACLE_INSTANCE=$MW_HOME/instances/instance1; export ORACLE_INSTANCE
#
# You may also want to set your PATH environment to avoid having to use
# paths in the commands
#
PATH=$WL_HOME/server/bin:$DOMAIN_HOME/bin:$ORACLE_INSTANCE/bin:$ORACLE_HOME/OPatch:$PATH; export PATH

  1. Start the WebLogic (WLS) Administration Server in the background
Note:  For username and password, you can:
    • pass username/pwd in the command line, 
    • use the boot.properties file for an encrypted username/password
    • set as environment variables - WLS_USER / WLS_PW,
    • or pass WLS_USER /WLS_PW in the start scripts. 

      Please see the Oracle WebLogic documentation to determine what meets your need. 

      In these examples, you can name the logs whatever you desire.


Execute:
nohup sh $DOMAIN_HOME/bin/startWebLogic.sh -Dweblogic.management.username=weblogic -Dweblogic.management.password=[_your_password_] > wls_start.log &

Next, tail the log to determine if the server started completely.

execute:
tail -f [log name]

wait until you see:
<WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

 there should be no further lines after this. If successful,  proceed to step 3. If errors, correct them and restart.
Note: This takes some time.  The terms "takes some time", "starts fast", "starts slow", "takes xx amount of time" are all relative terms depending upon resources in your environment.

  1. Start Node Manager 

Note: In this example, the username and password are embedded in script via WLS_USER and WLS_PW.  If you need another method or a more secure method, like a boot.properties  file, then please see:
Oracle Fusion Middleware Managing Server Startup and Shutdown for Oracle WebLogic Server 11g Release 1 (10.3.1)



Execute:
nohup sh  $WL_HOME/server/bin/startNodeManager.sh > startNodeManager.log &

Next, tail the log to determine if the server started completely. 
tail -f [log name]


Look for 
<INFO> <Secure socket listener started on port 9556>
Note: starts fast


  1. Start the OBI Managed Server (bi_server1 -- default  - java bits)
Note: This can be started via Fusion Middleware Control  or WebLogic Administration Console as well. For this example, modify WLS_USER and WLS_PW in the startManagedWebLogic.sh script to the values chosen during installation. You can set ADMIN_URL in the environment, in the script or pass on the command-line. In this example, it is passed on the command-line.



Execute:
nohup sh $DOMAIN_HOME/bin/startManagedWebLogic.sh bi_server1 http://server.domain:7001 > start_bi_server1.log &

Next, tail the log to determine if the server started completely. 
tail -f [log name]


look for "Server started in RUNNING mode: 
<Mon D, YYYY H:MM:SS PM EDT> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "wls_ods1" for domain "IDMDomain" running in Production Mode>
<Mon D, YYYY H:MM:SS PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Mon D, YYYY H:MM:SS PM EDT> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode
Note: takes about 30 seconds depending upon your environment. At this point, you could start any other servers that you have configured in the same manner. For example, WLS_DISCO, WLS_PORTAL.


  1. Start the OBIEE System Components ( BI Servers -- c++ bits)
$ORACLE_INSTANCE/bin/opmnctl startall

Next, execute:  
opmnctl status or opmnctl status -l (lower case L) to ensure the processes are started properly/completely. 


The output will look similar to this:

$ORACLE_INSTANCE/bin/opmnctl status -l

Processes in Instance: instance1
---------------------------------+--------------------+---------+----------+------------+----------+-----------+------
ias-component | process-type | pid | status | uid | memused | uptime | ports
---------------------------------+--------------------+---------+----------+------------+----------+-----------+------
coreapplication_obiccs1 | OracleBIClusterCo~ | 11741 | Alive | 70916792 | 55188 | 0:01:01 | N/A
coreapplication_obisch1 | OracleBIScheduler~ | 11740 | Alive | 70916789 | 122388 | 0:01:01 | N/A
coreapplication_obijh1 | OracleBIJavaHostC~ | 11739 | Alive | 70916790 | 1186088 | 0:01:01 | javahost:9810
coreapplication_obips1 | OracleBIPresentat~ | 11742 | Alive | 70916791 | 261576 | 0:01:01 | N/A
coreapplication_obis1 | OracleBIServerCom~ | 11738 | Alive | 70916788 | 150904 | 0:01:01 | N/A


Stopping the enviroment cleanly via the command-line:

Reverse the steps above with the following commands:
Note: You can look inside the respective scripts or the documentation for alternative or more secure methods. You can also kill the processes, but you may risk corruption.
  1. Stop the Oracle Instance  
    $ORACLE_INSTANCE/bin/opmnctl stopall
  2. Stop the OBIEE Managed Server (bi_server1) 
    $DOMAIN_HOME/bin/stopManagedWebLogic.sh bi_server1 t3://host.domain:7001 username password

    If running other managed servers, then stop them in the same manner.
  3. Stop the the WebLogic (WLS) Administration Server 
    $DOMAIN_HOME/bin/stopWebLogic.sh username password t3://host.domain:7001
  4. At this point, since the node manager was started in another shell in the background, then you will need to kill the JVM process that the node manager is running under. There should be no risk of corruption at this point since everything is already shutdown.  If you had started the node manager in a shell (and not in the background), then you could just close the shell.

    You can use the command 
    ps -ef | grep [os user] to check for running processes under the specified user and then kill the JVM process with kill -9 [PID] (where PID is the process id of the running JVM)

4 comments:

  1. $DOMAIN_HOME/bin/stopWebLogic.sh username password t3://host.domain:7001

    for stoping Managed server y not we pass http protol cal instead of t3 protocol .

    i observed in dev mode server stops using http protocol but in production must use t3 protocol or else it throws some error like server not runing on given host

    ReplyDelete
  2. Really helpful article - I took away some useful tips, thanks.

    ReplyDelete
  3. @ B V Sudhakar Sanku...
    For ur Query : $DOMAIN_HOME/bin/stopWebLogic.sh username password t3://host.domain:7001

    1- You can bypass username / password in mentioned command if boot.properties is set in environment.
    2- URL not required for start / stop of weblogic services.

    ReplyDelete