#!/bin/sh # # $Header: has/utl/ochadctl.sbs /unix/4 2016/06/08 18:42:06 wmiyoshi Exp $ # # # Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. # # NAME # ochadctl - Cluster Health Analysis Control Utility # # DESCRIPTION # Utility to control OCHAD # # NOTES # Supported usage: # 1. ochadctl start # 2. ochadctl clean # # MODIFIED (MM/DD/YY) # wmiyoshi 05/19/16 - Bug 23255143 - pid matching issue in agent # wmiyoshi 04/08/16 - Bug 22808320 - Solaris/SPARC high CPU usage with # check:jni # wmiyoshi 03/31/16 - Do not overwrite the previous output file # wmiyoshi 08/14/15 - Move generic code to perl script (ochadctl.pl) # wmiyoshi 08/14/15 - Branch for UNIX # wmiyoshi 07/27/15 - Remove obsolete command line options # wmiyoshi 07/27/15 - Rollback temporary fix for ucp.jar (bug 21219367) # wmiyoshi 06/08/15 - Add jdbc8.jar in the classpath # wmiyoshi 06/11/15 - Get logging level by OCHAD_LOGGING_LEVEL # wmiyoshi 06/11/15 - Use checked-in ucp.jar for bug 21219367 # wmiyoshi 06/02/15 - Fix bug 20920651. Always create files in ADR. # sbasu 06/10/15 - Replace ojdbc v6 with v8 # wmiyoshi 01/27/15 - Remove smile.jar from classpath # wmiyoshi 12/08/14 - Add clsce.jar to CLASSPATH # wmiyoshi 11/17/14 - Add ucp.jar # wmiyoshi 09/04/14 - Add OCHAD_PROPERTY_DEFS environment variable # wmiyoshi 03/24/14 - Load mode/project from a file # wmiyoshi 01/16/14 - Copy contents from chactl.sbs@@/main/11 # samjo 11/04/13 - Change pwd and name of crash file # samjo 10/08/13 - Bug 17561666, 17571176 # samjo 09/16/13 - Add offline mode # samjo 08/12/13 - Parse USR_ORA_ENV # samjo 07/15/13 - Add plugins.jar # samjo 07/29/13 - Add support for server pool # wmiyoshi 07/05/13 - Add srvmasm.jar in CLASSPATH # wmiyoshi 06/12/13 - Fix for emulated node env # wmiyoshi 06/07/13 - Change calibration parameters # samjo 06/05/13 - Fix warnings # wmiyoshi 05/29/13 - Add FTE and related jars # wmiyoshi 04/15/13 - change OCHAD main driver class # samjo 01/18/13 - Script to manage OCHAD # samjo 01/18/13 - Creation # # Preserve the command arg ACTION=$1 OHOME=%ORACLE_HOME% ORACLE_HOME=${OHOME} export ORACLE_HOME # redirect stdout/stderr to the output file HOSTSTR=`$ORACLE_HOME/bin/crsctl get hostname` export HOSTSTR output_dir=$ORACLE_BASE/crsdata/$HOSTSTR/output output_file=$output_dir/ochadOUT.trc exec >> $output_file exec 2>&1 # PERL Variables PERL_DIR=$OHOME/perl PERL_BIN=$PERL_DIR/bin export PERL_BIN PERL5LIB=$PERL_DIR/lib export PERL5LIB # JAVA_HOME JAVA_HOME=$OHOME/jdk export JAVA_HOME # turn on output capture _CRS_UI_FMT=-v export _CRS_UI_FMT # JRE Server options JRE_OPTIONS= JRE_OPTIONS_SERVER="-server" SIGQUIT_SLEEP_INTERVAL=0 ################################## #### Platform Specific Checks #### ################################## # Set the shared library path for JNI shared libraries # A few platforms use an environment variable other than LD_LIBRARY_PATH PLATFORM=`uname` export PLATFORM case $PLATFORM in HP-UX) LD_LIBRARY_PATH=$OHOME/lib:$OHOME/srvm/lib:$SHLIB_PATH export LD_LIBRARY_PATH JRE_OPTIONS="-d64" ;; AIX) LIBPATH=$OHOME/lib:$OHOME/srvm/lib:$LIBPATH export LIBPATH JRE_OPTIONS="-d64" JRE_OPTIONS_SERVER="-server $JRE_HEAP_OPTIONS" # Bug 11857338 - On AIX, add sleep after SIGQUIT # (because the JVM handles SIGQUIT asynchronously, # it needs extra time before we issue SIGKILL # to produce the requested dump) SIGQUIT_SLEEP_INTERVAL=5 GRID_USER=`/usr/bin/whoami` export GRID_USER ;; Linux) LD_LIBRARY_PATH=$OHOME/lib:$OHOME/srvm/lib:$LD_LIBRARY_PATH # Linux ( ppc64 || s390x ) => LD_LIBRARY_PATH lib32 ARCH=`uname -m`; if [ "$ARCH" = "ppc64" -o "$ARCH" = "s390x" ] then JRE_OPTIONS="-d64" JRE_OPTIONS_SERVER="-server $JRE_HEAP_OPTIONS" fi export LD_LIBRARY_PATH ;; SunOS) LD_LIBRARY_PATH_64=$OHOME/lib:$OHOME/srvm/lib:$LD_LIBRARY_PATH_64 export LD_LIBRARY_PATH_64 LD_LIBRARY_PATH=$OHOME/lib:$OHOME/srvm/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH JRE_OPTIONS="-d64" ;; OSF1) LD_LIBRARY_PATH=$OHOME/lib:$OHOME/srvm/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH ;; Darwin) DYLD_LIBRARY_PATH=$OHOME/lib:$OHOME/srvm/lib:$DYLD_LIBRARY_PATH export DYLD_LIBRARY_PATH ;; *) if [ -d $OHOME/lib32 ]; then LD_LIBRARY_PATH=$OHOME/lib32:$OHOME/srvm/lib32:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$OHOME/lib:$OHOME/srvm/lib:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH ;; esac JRE_OPTIONS="$JRE_OPTIONS $OCHAD_JRE_OPTIONS" export JRE_OPTIONS export JRE_OPTIONS_SERVER ECHO="/bin/echo" CDF="cd" # change OCHAD cwd eval '$CDF $output_dir > /dev/null 2>&1' CDRC="$?" if [ $CDRC -ne "0" ]; then $ECHO "Could not change CWD" fi # Main() case "$ACTION" in 'start') $PERL_BIN/perl -I$OHOME/lib $OHOME/bin/ochadctl.pl start STARTRC="$?" $ECHO "Return code is $STARTRC" exit $STARTRC ;; 'clean') # Kill OCHAD process $PERL_BIN/perl -I$OHOME/lib $OHOME/bin/ochadctl.pl clean $SIGQUIT_SLEEP_INTERVAL CLEANRC="$?" $ECHO "Return code is $CLEANRC" exit $CLEANRC ;; *) # Ignore action $ECHO "Ignoring unknown action $ACTION" UNKNOWNRC=0 $ECHO "Return code is $UNKNOWNRC" exit $UNKNOWNRC esac