Forms & Reports 11.1.2.2: Start – Stop – Skripte: Linux (RHEL oder OEL): Shell und WLST

In diesem Beispiel zeige ich die Konfiguration von Start – Stop – Skripten einer 11.1.2.2 Forms & Reports Installation.

Das Verhahren beinhaltet ein Steuerungs-Shell- und zwei Python-Skripte.
Dabei wird zuerst der NodeManager gestartet. Anschließend werden über den NodeManager der AdminServer und zwei Managed Server: WLS_FOMRS und WLS_REPORTS gestartet.

Die Skripte sind im Verzeichnis /u01/app/oracle/etc abgelegt und sind unter der Benutzerkennung oracle erstellt:

wls_start_stop.sh
wls_start_all.py
wls_stop_all.py

Das Main-Skript wls_start_stop.sh kann mit zwei Parametern aufgerufen werden:

./wls_start_stop.sh start

Dabei werden die folgenden Komponenten gestartet:

· NodeManager
· AdminServer_Forms_Reports
· WLS_FORMS Server
· WLS_REPORTS Server
· OHS_Forms_Reports

./wls_start_stop.sh stop

Dabei werden die folgenden Komponenten beendet:

· OHS_Forms_Reports
· WLS_FORMS Server
· WLS_REPORTS Server
· AdminServer_Forms_Reports
· NodeManager

Das Skript wls_start_stop.sh:

#!/bin/bash

MW_HOME=/u01/app/oracle/product/middleware
export MW_HOME
WL_HOME=${MW_HOME}/wlserver_10.3
export WL_HOME
ORACLE_HOME=$MW_HOME/Oracle_FRHome1
export ORACLE_HOME
INSTANCE_HOME=$MW_HOME/asinst_1
export INSTANCE_HOME
DOMAIN_HOME=$MW_HOME/user_projects/domains/ClassicDomain
export DOMAIN_HOME
JAVA_HOME=/u01/app/oracle/product/java/jdk
export JAVA_HOME
WORK_DIR=/u01/app/oracle/etc
export WORK_DIR
case "$1" in
 start)
   $INSTANCE_HOME/bin/opmnctl startall
   $WL_HOME/server/bin/startNodeManager.sh &
   source $DOMAIN_HOME/bin/setDomainEnv.sh
   $WL_HOME/common/bin/wlst.sh $WORK_DIR/wls_start_all.py
   sleep 300
   ;;
 stop)
   $INSTANCE_HOME/bin/opmnctl stopall
   source $DOMAIN_HOME/bin/setDomainEnv.sh
   $WL_HOME/common/bin/wlst.sh $WORK_DIR/wls_stop_all.py
   prcs=`ps -ef |egrep 'java|middleware|frmweb' | grep -v grep |awk '{print $2}'`
   for prc in ${prcs}
   do
     kill -9 ${prc} >/dev/null 2>&1
   done
   rm $WL_HOME/common/nodemanager/*.lck >/dev/null 2>&1
   ;;
 *)
   echo "usage: $0 [start|stop]"
   exit 2
   ;;
esac

Das Skript wls_start_all.py:

def serverStatus(server):
 cd('/ServerLifeCycleRuntimes/'+server)
 return cmo.getState()

nmConnect('weblogic','mypassword', 'testserver','5556','ClassicDomain','/u01/app/oracle/product/middleware/user_projects/domains/ClassicDomain','plain')

try:
 connect('weblogic','mypassword','t3://testserver:7001')
except:
 print '################# Error ################'
 print '# Adminserver nicht gestartet #'
 print '# um die Applikationsserver zu starten #'
 print '# muss erst der Adminserver gestartet #'
 print '# sein, dies wird jetzt gemacht #'
 print '########################################'
 nmStart('AdminServer')
 connect('weblogic','mypassword','t3://testserver:7001')

domainRuntime()

serverState = serverStatus('WLS_FORMS')
if serverState != 'RUNNING':
 nmStart('WLS_FORMS')
else:
 print 'WLS_FORMS ist runtergefahren: Status => ' + serverState

serverState = serverStatus('WLS_REPORTS')
if serverState != 'RUNNING':
 nmStart('WLS_REPORTS')
else:
 print 'WLS_REPORTS ist runtergefahren: Status => ' + serverState

nmDisconnect()
exit()

Das Skript wls_stop_all.py:

def serverStatus(server):
  cd('/ServerLifeCycleRuntimes/'+server)
  return cmo.getState()

nmConnect('weblogic','mypassword', 'testserver','5556','ClassicDomain','/u01/app/oracle/product/middleware/user_projects/domains/ClassicDomain','plain')
try:
  connect('weblogic','mypassword','t3://testserver:7001')
except:
 print '################# Error ################'
 print '# Adminserver nicht gestartet #'
 print '# um die Applikationsserver zu starten #'
 print '# muss erst der Adminserver gestartet #'
 print '# sein, dies wird jetzt gemacht #'
 print '########################################'
 nmStart('AdminServer')
 connect('weblogic','mypassword','t3://testserver:7001')

domainRuntime()

serverState = serverStatus('WLS_FORMS')
if serverState != 'SHUTDOWN':
 nmKill('WLS_FORMS')
else:
 print 'WLS_FORMS ist runtergefahren: Status => ' + serverState

serverState = serverStatus('WLS_REPORTS')
if serverState != 'SHUTDOWN':
 nmKill('WLS_REPORTS')
else:
 print 'WLS_REPORTS ist runtergefahren: Status => ' + serverState

serverState = serverStatus('AdminServer')
if serverState != 'SHUTDOWN':
 nmKill('AdminServer')
else:
 print 'AdminServer ist runtergefahren: Status => ' + serverState

nmDisconnect()
exit()

Berechtigungen setzen:

chmod -R 755 /u01/app/oracle/etc

… und in RC Verfahren integrieren. Diese Aktion soll vom BS Benutzer root ungesetzt werden

Das Skript /etc/init.d/fmwora erstellen:

#
# chkconfig: 35 99 10
# description: Start and stop the Oracle Fusion Middleware
#
WORK_DIR=/u01/app/oracle/etc
export WORK_DIR
ORA_OWNER=oracle
export ORA_OWNER

if [ ! -f $WORK_DIR/wls_start_stop.sh \
  -o ! -f $WORK_DIR/wls_start_all.py \
  -o ! -f $WORK_DIR/wls_stop_all.py ]
then
  echo "Oracle startup: cannot start"
  exit
fi

case "$1" in
 'start') # Start the Oracle Fusion Middleware
    su - $ORA_OWNER -c "$WORK_DIR/wls_start_stop.sh start"
    touch /var/lock/subsys/fmwora
    ;;
 'stop') # Stop the Oracle Fusion Middleware
    su - $ORA_OWNER -c "$WORK_DIR/wls_start_stop.sh stop"
    rm -f /var/lock/subsys/fmwora
    ;;
esac

Die Rechte vergeben:

chmod 700 /etc/init.d/fmwora

Das Kommando checkconfig ausführen:

cd /etc/init.d
 /sbin/chkconfig --add fmwora

Prüfen:

cd /etc/init.d
 /sbin/chkconfig --list fmwora

Ausgabe:

fmwora 0:off 1:off 2:off 3:on 4:off 5:on 6:off

Das automatisches Starten und Stoppen ist damit konfiguriert!

Advertisements

Autor: Neselovskyi, Borys

Oracle Database / Middleware / Engineered System Solution Architect

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s