#!/bin/bash # # Main startup script for launching SDTServer from SLM # # Create restart script echo "$0 $@" echo "$0 $@ -srvarg=/SDTExecutionService/resume=true" > restart_slc chmod 777 restart_slc # Get base directory ROOTDIR=`dirname "$0"` if [ "X$ROOTDIR" = "X." -o -z "$ROOTDIR" ] ; then ROOTDIR=`pwd` fi ROOTDIR=`dirname "$ROOTDIR"` cd ${ROOTDIR} # Check if the first parameter is sapjvm="" SAPJVM_PARAM=$1 SAPJVM=${SAPJVM_PARAM:0:6} JVMPATH=${SAPJVM_PARAM:7} JVMPATH=${JVMPATH//\"/} if [ "$SAPJVM" = "sapjvm" ] ; then JAVA_HOME=$JVMPATH else echo "WARNING: No sapjvm path in command, try to use JAVA_HOME." fi # Check if the second parameter is debug="true" if [ $2 = "debug=true" ] ; then DEBUG="true" echo "Starting SL controller in debug mode." else DEBUG="false" echo "Starting SL controller in normal mode." fi # Determine java executable if [ -n "$JAVA_HOME" ] ; then java_cmd=$JAVA_HOME/bin/java echo "Using JDK $JAVA_HOME." else echo "WARNING Environment variable JAVA_HOME not set, trying to launch java from current PATH" java_cmd=java fi # Set extra parameter for maximum heap size: java_cmd="$java_cmd -Xmx256m" # Set extra parameter for generating heap dump on memory error: # This option is not supported by all JVM versions # Uncomment only if needed and the JVM used supports the -XX:+HeapDumpOnOutOfMemoryError option # java_cmd="$java_cmd -XX:+HeapDumpOnOutOfMemoryError" # Set classpath and check for special options SDTSERVER_CLASSPATH="" for i in compatibility slctrl do SDTSERVER_CLASSPATH="$SDTSERVER_CLASSPATH""$ROOTDIR"/lib/sdt_"$i".jar: done SDTSERVER_CLASSPATH="$SDTSERVER_CLASSPATH""$ROOTDIR"/lib/sdt_mxp.jar: SRVARG="-srvarg=/SDTExecutionService/restart" ROOTDIR_OPT="rootdir=$ROOTDIR" RESTART_OPT="${SRVARG}=false" #delete old jar sdt_server.jar if [ -f "$ROOTDIR"/lib/sdt_server.jar ]; then rm -f "$ROOTDIR"/lib/sdt_server.jar fi while : do if [ "$DEBUG" = "false" ] ; then $java_cmd -ea -cp "$SDTSERVER_CLASSPATH" $SERVER_JAVA_OPTS SDTServer $ROOTDIR_OPT $RESTART_OPT "$@" else $java_cmd -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -ea -cp "$SDTSERVER_CLASSPATH" $SERVER_JAVA_OPTS SDTServer $ROOTDIR_OPT $RESTART_OPT "$@" fi RETCODE=$? if [ $RETCODE -ne 42 ]; then exit $RETCODE fi mv ./lib ./lib_old mv ./exe/slmLaunchSDTServer2 ./exe/slmLaunchSDTServer2_old SAPCAR -xvf LUP.SAR RETCODE=$? if [ $RETCODE -ne 0 ]; then echo "ERROR: SDTServer self patch failed with rc=$RETCODE" exit fi rm -rf ./lib_old chmod 755 ./exe/* RESTART_OPT="${SRVARG}=true" done