amsfo revision 0a99555401a033704f1f171baab6db11fb5528f2
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#!/bin/sh
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# The contents of this file are subject to the terms
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# of the Common Development and Distribution License
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# (the License). You may not use this file except in
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# compliance with the License.
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# You can obtain a copy of the License at
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# https://opensso.dev.java.net/public/CDDLv1.0.html or
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# opensso/legal/CDDLv1.0.txt
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# See the License for the specific language governing
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# permission and limitations under the License.
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# When distributing Covered Code, include this CDDL
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# Header Notice in each file and include the License file
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# at opensso/legal/CDDLv1.0.txt.
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# If applicable, add the following below the CDDL Header,
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# with the fields enclosed by brackets [] replaced by
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# your own identifying information:
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# "Portions Copyrighted [year] [name of copyright owner]"
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# $Id: amsfo,v 1.6 2009/04/16 15:35:58 subashvarma Exp $
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsync# Portions Copyrighted 2011 ForgeRock AS
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncCONF_FILE=/opt/SUNWam/lib/amsfo.conf
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncCONF_FILE_LINUX=/opt/sun/identity/lib/amsfo.conf
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncCONF_FILE_HPUX=/opt/sun/identity/lib/amsfo.conf
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsync### To Debug this script set AMDEBUG to true ####
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncAMDEBUG=false
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncOS_ARCH=`/bin/uname -s`
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncif [ "$OS_ARCH" = "Linux" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync CONF_FILE=${CONF_FILE_LINUX}
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncelif [ "$OS_ARCH" = "HP-UX" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync CONF_FILE=${CONF_FILE_HPUX}
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncfi
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsync##### sourceing amsfo config file ####
672ca1d95a261af3a66a72defb914be5d124f888vboxsync. $CONF_FILE
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncAM_BIN_DIR=$AM_HOME_DIR/bin
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncif [ "$OS_ARCH" = "Linux" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync AM_BIN_DIR=$AM_HOME_LINUX/bin
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncelif [ "$OS_ARCH" = "HP-UX" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync AM_BIN_DIR=$AM_HOME_HPUX/bin
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncfi
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncJMQ_BIN_DIR=/usr/bin
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncJMQ_PID_FILE="$LOG_DIR/jmq.pid"
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncAM_PID_FILE="$LOG_DIR/amdb.pid"
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsync#####hpux-dev#####
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncif [ "$OS_ARCH" = "Linux" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync JMQ_BIN_DIR=/opt/sun/mq/bin
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncelif [ "$OS_ARCH" = "HP-UX" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync JMQ_BIN_DIR=/opt/sun/mq/bin
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncfi
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncAMEXECUTABLE=$AM_BIN_DIR/amsessiondb
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncJMQEXECUTABLE=$JMQ_BIN_DIR/imqbrokerd
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncBROKER_OPTIONS="-silent"
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncif [ "$AMDEBUG" = "true" ]; then
672ca1d95a261af3a66a72defb914be5d124f888vboxsync echo "restart $AM_SFO_RESTART"
672ca1d95a261af3a66a72defb914be5d124f888vboxsync echo "cluster list $CLUSTER_LIST"
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncfi
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsync
672ca1d95a261af3a66a72defb914be5d124f888vboxsyncstop_jmq() {
if [ "$AMDEBUG" = "true" ] ; then
echo "stopping JMQ Broker.."
fi
if test -f $JMQ_PID_FILE ; then
kill -TERM `cat $JMQ_PID_FILE` >> /dev/null
status=$?
if [ "$AMDEBUG" = "true" ]; then
if [ $status != 0 ]; then
echo "Could not stop the JMQ Broker"
else
echo "JMQ Broker is shutdown"
fi
fi
rm $JMQ_PID_FILE
else
if [ "$AMDEBUG" = "true" ]; then
echo "JMQ Broker not running"
fi
exit 1
fi
}
start_jmq() {
mkdir -p $LOG_DIR
if [ "$AMDEBUG" = "true" ]; then
echo "starting JMQ Broker"
fi
if [ $AM_SFO_RESTART = "true" ]; then
BROKER_OPTIONS="-autorestart $BROKER_OPTIONS"
fi
_jmqpid=""
if test -f $JMQ_PID_FILE ; then
brok_pid=`cat $JMQ_PID_FILE`
brok_status=`ps -e | grep $brok_pid`
else
brok_status=""
fi
if [ "$brok_status" != "" ]; then
if [ "$AMDEBUG" = "true" ] ; then
echo "JMQ Broker is already running."
fi
else
if [ "$AMDEBUG" = "true" ]; then
echo " $JMQEXECUTABLE -bgnd $BROKER_OPTIONS -vmargs $BROKER_VM_ARGS -name $BROKER_INSTANCE_NAME -port $BROKER_PORT -cluster $CLUSTER_LIST"
fi
$JMQEXECUTABLE -bgnd $BROKER_OPTIONS -vmargs "$BROKER_VM_ARGS" -name $BROKER_INSTANCE_NAME -port $BROKER_PORT -cluster $CLUSTER_LIST &
_jmqpid=$!
echo $_jmqpid > $JMQ_PID_FILE
fi
}
start_am() {
mkdir -p $LOG_DIR
export AM_SFO_RESTART
if [ "$AMDEBUG" = "true" ]; then
echo "starting amsessiondb client"
fi
# Check if the server is already running.
_amqpid=""
amdb_status=""
if test -f $AM_PID_FILE ; then
amdb_pid=`cat $AM_PID_FILE`
amdb_status=`ps -e | grep $amdb_pid`
else
amdb_status=""
fi
echo $amdb_status
if [ "$amdb_status" != "" ]; then
if [ "$AMDEBUG" = "true" ] ; then
echo "AM Session DB client is already running."
fi
else
if [ "$DELETE_DATABASE" = true ] ; then
rm -rf $DATABASE_DIR
fi
if [ "$AMDEBUG" = "true" ] ; then
echo "$AMEXECUTABLE -a $CLUSTER_LIST -u $USER_NAME -f $PASSWORDFILE -b $DATABASE_DIR $AMSESSIONDB_ARGS -m $CONF_FILE"
fi
mkdir -p $DATABASE_DIR
$AMEXECUTABLE -a $CLUSTER_LIST -u $USER_NAME -f $PASSWORDFILE -b $DATABASE_DIR $AMSESSIONDB_ARGS -m $CONF_FILE >> $LOG_DIR/amsessiondb.log &
_ampid=$!
echo $_ampid > $AM_PID_FILE
fi
}
stop_am() {
if [ "$AMDEBUG" = "true" ]; then
echo "stopping amsessiondb client."
fi
if test -f $AM_PID_FILE ; then
kill -TERM `cat $AM_PID_FILE`
status=$?
if [ "$AMDEBUG" = "true" ]; then
if [ $status != 0 ]; then
echo "Could not stop the amsessiondb client"
else
echo "amsessiondb is shutdown"
fi
fi
rm $AM_PID_FILE
else
if [ "$AMDEBUG" = "true" ]; then
echo "amsessiondb not running"
fi
fi
}
wait_jmq () {
_repeat=true
while [ $_repeat ]; do
EXIST=`netstat -an |grep $BROKER_PORT|grep LISTEN|wc -l`
if [ $EXIST -ge 1 ]; then
_repeat=
else
sleep 2
echo "\tWait for the broker to start properly"
fi
done
}
case "$1" in
'start')
if [ "$START_BROKER" = "true" ]; then
start_jmq
## Wait until the broker start up properly ##
wait_jmq
fi
start_am
;;
'stop')
stop_am
## Wait untill the AMDB shuts down properly ##
if [ "$START_BROKER" = "true" ]; then
sleep 5
stop_jmq
fi
;;
'start-jmq')
start_jmq
sleep 5
;;
'stop-jmq')
stop_jmq
sleep 5
;;
'start-amsdb')
start_am
sleep 5
;;
'stop-amsdb')
stop_am
sleep 5
;;
*)
echo "Usage: $0 { start | stop | start-jmq | stop-jmq | start-amsdb | stop-amsdb}"
;;
esac