#################################################################### # lwsn.sh - Environment Independent Lawson System Stop/Start Script. # Performs the requested task in the requestors CURRENT # ENVIRONMENT. # J. David Schronce - #################################################################### ##################################################################### # Setup Variables # # cdate - Date format used in writing log files # # ARC_JOBS - Whether ot not to archive joblogs for future study # options are "TRUE" and "FALSE" (CAPS required) ##################################################################### cdate=`date "+%m%d%y%H%M%S"` pgmname=`basename $0` ARC_JOBS="FALSE" logdir=/some/dir/lwsn/logs #################################################################### # # Define Functions # #################################################################### #################################################################### # # Check that current environment exists # #################################################################### envexist () { # Does Environment exist? if [ -d $GENDIR/bin ]; then LOG=log homedir=$logdir/lawson$PARM_VAL$LOG # Make sure log directories exist if [ ! -d $logdir ]; then mkdir $logdir chmod 777 $logdir fi if [ ! -d $homedir ]; then mkdir $homedir chmod 777 $homedir fi date >>$homedir/lawson$PARM_VAL.$LOG who am i >>$homedir/lawson$PARM_VAL.$LOG echo "$PARM_VAL components in env $LAWENVNAME " >>$homedir/lawson$PARM_VAL.$LOG else echo "Lawson Environment $LAWENVNAME does not exist on this server..." exit 1 fi } #################################################################### # # See if Lawson is running # #################################################################### lawson_running() { LAW_RUNNING=FALSE if [ `ps -ef | grep $GENDIR/bin/ladb | grep -v grep | wc -l` -gt 0 ]; then LAW_RUNNING=TRUE fi } #################################################################### # # Write to logs # #################################################################### writelog() { echo "$PARM_VAL $SERVICE" >>$homedir/lawson$PARM_VAL.$LOG echo "$PARM_VAL $SERVICE" } #################################################################### # # Process Lawson # #################################################################### lawson() { SERVICE="Lawson Environment" writelog case $PARM_VAL in stop) # Make sure Lawson is Running... if [ $LAW_RUNNING = TRUE ]; then $GENDIR/bin/stoplaw LAW_RUNNING=FALSE cd $LAWDIR/system # Rotate all logs except install.log for logfile in `ls *.log | grep -v install.log` do # Test to see if logfile is not zero length if [ -n $logfile ]; then mv $logfile $homedir/$logfile.$cdate 2>/dev/null fi done # Archive joblogs directory if [ "X$ARC_JOBS" = "XTRUE" ]; then tar vf joblogs.tar ./joblog gzip joglogs.tar mv joblogs.tar.gz $homedir/joblogs.tar.$cdate.gz 2>/dev/null fi # Create empty log files for logfile in ladb ladebug lajs latm lawson queue sec secadmin secdict secvio do touch $logfile.log chmod 666 $logfile.log done else echo "Lawson Environment $LAWENVNAME is not running" fi;; start) # Make sure Lawson is not Running... if [ $LAW_RUNNING = FALSE ]; then $GENDIR/bin/startlaw LAW_RUNNING=TRUE else echo "Lawson Environment $LAWENVNAME is already running" fi;; esac } #################################################################### # # Process RMI Servers # #################################################################### rmi() { SERVICE="RMI" if [ -d $CGIDIR/rmi ]; then writelog # Make sure Lawson is Running... if [ $LAW_RUNNING = TRUE ]; then RUNNING_PROCS=`ps -ef | grep $CGIDIR/streamida | grep -v grep | wc -l` case $PARM_VAL in stop) if [ $RUNNING_PROCS -gt 0 ]; then cd $CGIDIR/rmi ./stopps.sh sleep 15 # archive $CGIDIR/rmi logs for logfile in `ls *.log` do # Test to see if logfile is not zero length if [ -n $logfile ]; then mv $logfile $homedir/rmi.$logfile.$cdate touch $logfile chmod 666 $logfile fi done # archive $CGIDIR logs cd $CGIDIR for logfile in `ls *.log` do # Test to see if logfile is not zero length if [ -n $logfile ]; then mv $logfile $homedir/cgidir.$logfile.$cdate touch $logfile chmod 666 $logfile fi done else echo "$SERVICE not running..." fi;; start) if [ $RUNNING_PROCS -eq 0 ]; then cd $CGIDIR/rmi ./startps.sh # Wait until all processes are started # Calc minimum running ida processes INIT=`grep initconns_ida $CGIDIR/rmi/PoolMgr.properties \ | grep -v "#" | cut -d"=" -f2` DA=`grep data_area $CGIDIR/rmi/PoolMgr.properties \ | grep -v "#" | cut -d"=" -f2` TOT_PROCS=`echo "$INIT * $DA" | bc` RUNNING_PROCS=`ps -ef | grep $CGIDIR/streamida | grep -v grep | wc -l` while [ $RUNNING_PROCS -lt $TOT_PROCS ] do echo "$RUNNING_PROCS started of $TOT_PROCS RMI processes..." sleep 3 RUNNING_PROCS=`ps -ef | grep $CGIDIR/streamida | grep -v grep | wc -l` done echo "All RMI processes running..." else echo "$SERVICE already running..." fi;; esac else echo "Lawson Environment $LAWENVNAME is not running" fi else echo "$SERVICE not installed for $LAWENVNAME" fi } #################################################################### # # Process ProcessFlow # #################################################################### pfengines() { SERVICE="Processflow Engines" writelog if [ -f $CCSDIR/lawson/processflow/servers.pl ]; then # Make sure Lawson is Running... if [ $LAW_RUNNING = TRUE ]; then # See if ProcessFlow is Running... RUNNING_PROCS=`ps -ef | grep $CCSDIR/lawson/processflow/jars/pfengine.jar | grep -v grep | wc -l` case $PARM_VAL in stop) if [ $RUNNING_PROCS -gt 0 ]; then cd $CCSDIR/lawson/processflow perl servers.pl stop all sleep 15 # Rotate logs for pf_log in pflow.out wfc.out pfsch.out em.out do mv $pf_log $homedir/$pf_log.$cdate touch $pf_log chmod 666 $pf_log done else echo "$SERVICE not running in $LAWENVNAME" fi;; start) if [ $RUNNING_PROCS -eq 0 ]; then cd $CCSDIR/lawson/processflow perl servers.pl start all sleep 15 else echo "$SERVICE already running in $LAWENVNAME" fi;; esac else echo "Lawson Environment $LAWENVNAME is not running" fi else echo "$SERVICE not installed for $LAWENVNAME" fi } #################################################################### # # Process ProcessFlow RMI Servers # #################################################################### pfrmi() { SERVICE="Processflow RMI" if [ -f $CCSDIR/lawson/processflow/stop_rdb_server.sh ]; then writelog # Make sure Lawson is Running... if [ $LAW_RUNNING = TRUE ]; then # See if ProcessFlow RMI is Running... RUNNING_PROCS=`ps -ef | grep $CCSDIR | grep localhost | grep -v grep | wc -l` case $PARM_VAL in stop) # Make sure pflow rmi is running... if [ $RUNNING_PROCS -gt 0 ]; then cd $CCSDIR/lawson/processflow ./stop_rdb_server.sh sleep 15 mv rdb_server.log $homedir/rdb_server.log.$cdate touch rdb_server.log chmod 666 rdb_server.log else echo "$SERVICE not running in $LAWENVNAME" fi;; start) # Make sure pflow rmi is not running... if [ $RUNNING_PROCS -eq 0 ]; then cd $CCSDIR/lawson/processflow ./start_rdb_server.sh sleep 15 else echo "$SERVICE already running in $LAWENVNAME" fi;; esac else echo "Lawson Environment $LAWENVNAME is not running" fi else echo "$SERVICE not installed for $LAWENVNAME" fi } ##################################################################### # End of functions ##################################################################### ##################################################################### # Main Program ##################################################################### if [[ $# -lt 2 ]]; then echo "\nUSAGE: $0 component" echo "Components are: all, lawson, rmi, pfengines, pfrmi\n" exit else PARM_VAL=$1; COMPONENT=$2 fi;; *) echo "Unrecognized program name;"exit;; if [[ "X$COMPONENT" = "X" ]] then COMPONENT="all" fi case $COMPONENT in all) # Process in correct order if [ $PARM_VAL = start ]; then envexist && lawson_running && lawson && rmi && pfengines && pfrmi fi if [ $PARM_VAL = stop ]; then envexist && lawson_running && pfrmi && pfengines && rmi && lawson fi;; lawson) envexist && lawson_running && lawson ;; rmi) envexist && lawson_running && rmi ;; pfengines) envexist && lawson_running && pfengines ;; pfrmi) envexist && lawson_running && pfrmi ;; *) echo "Bad component, components are: all, lawson, rmi, pfengines, pfrmi"; exit;; esac