JITL jobs in a shell
Some of the JITL jobs are prepared to be executed from shell. What you need is
- the parameters,
- the name of the java class,
- the class path for the java implementation.
The name of the java class and the parameters can be found in the documentation of the job. All documentations can be found here: JITL - JobScheduler Integrated Template Library
The class path is normally not documented. You are on the safe side, if you add all .jar files from $SCHEDULER_HOME/lib to the class path. Handling will be easier, if you navigate to $SCHEDULER_HOME/lib and start the class from that location.
Example
Here is an example how to start the job JobSchedulerCleanupSchedulerDbMain from shell:
- The parameters for the hibernate configuration file and for the delete interval are specified. Also the list of required jar files in the class path.
- You can execute this from shell by navigation to $SCHEDULER_HOME/lib and the execute this command.
java -classpath /opt/sos-berlin.com/jobscheduler/scheduler_4444/lib/3rd-party/*:/opt/sos-berlin.com/jobscheduler/scheduler_4444/lib/sos/* -Dlog4j.configuration="file:////opt/sos-berlin.com/jobscheduler/scheduler_4444/lib/log4j.properties" com.sos.jitl.housekeeping.cleanupdb.JobSchedulerCleanupSchedulerDbMain -delete_interval=10 -hibernate_configuration_file=/home/test/sos-berlin.com/jobscheduler/scheduler_4444/config/hibernate.cfg.xml
This is an example to provide the call with a shell script.
#!/bin/sh
#
# ------------------------------------------------------------
# Company: Software- und Organisations-Service GmbH
# Purpose: start Job cleanupHistoryDb
# ------------------------------------------------------------
test -z "$SCHEDULER_HOME" && SCHEDULER_HOME="/opt/sos-berlin.com/jobscheduler/scheduler_4444"
test -z "$SCHEDULER_DATA" && SCHEDULER_DATA="/home/test/sos-berlin.com/jobscheduler/scheduler_4444"
test -z "$JAVA_HOME" && JAVA_HOME="/opt/Oracle_Java/jdk1.8.0_31/jre"
test -z "$LOG_BRIDGE" && LOG_BRIDGE="log4j"
test -z "$LOG4JPROP" && test -f "$SCHEDULER_HOME/lib/log4j.properties" && LOG4JPROP="-Dlog4j.configuration=file://$SCHEDULER_HOME/lib/log4j.properties"
JAVA_BIN="$JAVA_HOME/bin/java"
export SCHEDULER_HOME
export SCHEDULER_DATA
CUR_DIR=`pwd`
cd "$SCHEDULER_HOME"
# set_classpath
CP="lib/patches/*:lib/jdbc/*:lib/user_lib/*:lib/3rd-party/*:lib/sos/*"
echo "$JAVA_BIN" -classpath "$CP" ${LOG4JPROP} $JAVA_OPTIONS -DSCHEDULER_HOME="$SCHEDULER_HOME" -DSCHEDULER_DATA="$SCHEDULER_DATA" -DSCHEDULER_HOT_FOLDER="$SCHEDULER_HOT_FOLDER" com.sos.jitl.housekeeping.cleanupdb.JobSchedulerCleanupSchedulerDbMain -delete_interval=10 -hibernate_configuration_file=$SCHEDULER_DATA/config/hibernate.cfg.xml
"$JAVA_BIN" -classpath "$CP" ${LOG4JPROP} $JAVA_OPTIONS -DSCHEDULER_HOME="$SCHEDULER_HOME" -DSCHEDULER_DATA="$SCHEDULER_DATA" com.sos.jitl.housekeeping.cleanupdb.JobSchedulerCleanupSchedulerDbMain -delete_interval=10 -hibernate_configuration_file=$SCHEDULER_DATA/config/hibernate.cfg.xml
cd "$CUR_DIR"
_