2 Replies Latest reply: Aug 12, 2011 7:14 AM by 864639 RSS

    Startup/Shutdown script for OBIEE 11g on Linux

    chris_here
      Hi all,

      as a follow-up to [url http://forums.oracle.com/forums/thread.jspa?messageID=4546010]an earlier thread by some fine gentleman, I have improved the original startup/shutdown script for Linux a bit, making sure that all processes are handled correctly. The script has been tested and works fine on CentOS 5.5 with Oracle BI 11.1.1.3.0 in a clustered configuration. Instructions:

      Manual start/stop:
      > service obiee start
      > service obiee stop
      > service obiee status

      Automatic start/stop during boot sequence:
      > chkconfig --add obiee
      > chkconfig obiee on

      Note that in order for the procedure to go through smoothly, you need to provide the admin credentials (username/password, defaulting to weblogic/weblogic) in three different places:
      1. In configuration file <FMW_HOME>/user_projects/domains/<domain name>/servers/AdminServer/security/boot.properties for the administration server;
      2. In script <FMW_HOME>/user_projects/domains/<domain name>/bin/startManagedWebLogic.sh (variables WLS_USER and WLS_PW) for the managed server;
      3. In the startup script itself (variables BIEE_USER and BIEE_PASSWD) for shutting down the managed server.

      Complete logs are available in /var/log/obiee-start (-stop).log files.

      Please comment as necessary,
      Chris
      #!/bin/bash
      # 
      # File:    /etc/init.d/obiee
      # Purpose: Start and stop Oracle Business Intelligence 11g components.
      #
      # chkconfig: 2345 99 10
      # description: Manage OBIEE service.
      #
      
      # These values must be adapted to your environment.
      
      ORACLE_OWNR=oracle                  # Local Unix user running OBIEE
      ORACLE_FMW=/home/oracle/biee        # Deployment root directory
                                         
      BIEE_USER=<username>                # BIEE administrator name
      BIEE_PASSWD=<password>              # BIEE administrator password               
      BIEE_DOMAIN=<domain name>           # Domain name
      BIEE_INSTANCE=instance1             # Instance name
      BIEE_SERVER=bi_server1              # Server name
      BIEE_MANAGER_URL=<hostname>:7001    # Admin server URL (hostname:port)    
      
      # These should require no change.
      
      WL_PATH=$ORACLE_FMW/wlserver_10.3/server/bin
      BIEE_PATH=$ORACLE_FMW/user_projects/domains/$BIEE_DOMAIN/bin
      ORACLE_INSTANCE=$ORACLE_FMW/instances/$BIEE_INSTANCE
      
      export ORACLE_INSTANCE
      
      START_LOG=/var/log/obiee-start.log
      STOP_LOG=/var/log/obiee-stop.log
      SUBSYS=obiee
      
      start() {
          echo "********************************************************************************"
          echo "Starting Admin Server on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$BIEE_PATH/startWebLogic.sh" &
          wait_for "Server started in RUNNING mode"
          
          echo "********************************************************************************"
          echo "Starting Node Manager on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$WL_PATH/startNodeManager.sh" &
          wait_for "socket listener started on port"
      
          echo "********************************************************************************"
          echo "Starting Managed Server $BIEE_SERVER on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$BIEE_PATH/startManagedWebLogic.sh $BIEE_SERVER http://$BIEE_MANAGER_URL" &
          wait_for "Server started in RUNNING mode"
      
          echo "********************************************************************************"
          echo "Starting BI components on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$ORACLE_INSTANCE/bin/opmnctl startall"
      
          echo "********************************************************************************"
          echo "OBIEE start sequence completed on $(date)"
          echo "********************************************************************************"
      }
      
      stop() {
          echo "********************************************************************************"
          echo "Stopping BI components on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$ORACLE_INSTANCE/bin/opmnctl stopall"
      
          echo "********************************************************************************"
          echo "Stopping Managed Server $BIEE_SERVER on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$BIEE_PATH/stopManagedWebLogic.sh $BIEE_SERVER t3://$BIEE_MANAGER_URL $BIEE_USER $BIEE_PASSWD"
      
          echo "********************************************************************************"
          echo "Stopping Node Manager on $(date)"
          echo "********************************************************************************"
          pkill -TERM -u $ORACLE_OWNR -f "weblogic\\.NodeManager"
          
          echo "********************************************************************************"
          echo "Stopping Admin Server on $(date)"
          echo "********************************************************************************"
          su $ORACLE_OWNR -c "$BIEE_PATH/stopWebLogic.sh"
          
          echo "********************************************************************************"
          echo "OBIEE stop sequence completed on $(date)"
          echo "********************************************************************************"
      }
      
      wait_for() {
          res=0
          while [[ ! $res -gt 0 ]]
          do
              res=$(tail -5 "$START_LOG" | fgrep -c "$1")
              sleep 5
          done
      }
      
      case "$1" in
          start)
              echo "********************************************************************************"
              echo "Starting Oracle Business Intelligence on $(date)"
              echo "Logs are sent to $START_LOG"
              echo "********************************************************************************"
              start &> $START_LOG &
              touch /var/lock/subsys/$SUBSYS
          ;;
          stop)
              echo "********************************************************************************"
              echo "Stopping Oracle Business Intelligence on $(date)"
              echo "Logs are sent to $STOP_LOG"
              echo "********************************************************************************"
              stop &> $STOP_LOG
              rm -f /var/lock/subsys/$SUBSYS
          ;;
          status)
              echo "********************************************************************************"
              echo "Oracle BIEE components status...."
              echo "********************************************************************************"
              su $ORACLE_OWNR -c "$ORACLE_INSTANCE/bin/opmnctl status"
          ;;
          restart)
              $0 stop
              $0 start
          ;;
          *)
              echo "Usage: $(basename $0) start|stop|restart|status"
              exit 1
      esac
      
      exit 0