# HG changeset patch
# User Alexander Krauth <[email protected]>
# Date 1293543836 -3600
# Node ID bdaecdef3b6af70db1c21b41bf09c1f95ed817b7
# Parent 3886d6e315210985fdd6162afbac69896e594b64
High: SAPInstance: New parameter: SHUTDOWN_METHOD
diff -r 3886d6e31521 -r bdaecdef3b6a heartbeat/SAPInstance
--- a/heartbeat/SAPInstance Tue Dec 28 14:43:09 2010 +0100
+++ b/heartbeat/SAPInstance Tue Dec 28 14:43:56 2010 +0100
@@ -24,6 +24,7 @@
# OCF_RESKEY_START_WAITTIME (optional, to solve timing problems during
J2EE-Addin start)
# OCF_RESKEY_AUTOMATIC_RECOVER (optional, automatic startup recovery
using cleanipc, default is false)
# OCF_RESKEY_MONITOR_SERVICES (optional, default is to monitor
critical services only)
+# OCF_RESKEY_SHUTDOWN_METHOD (optional, defaults to NORMAL, KILL:
terminate the SAP instance with OS commands - faster, at your own risk)
# OCF_RESKEY_ERS_InstanceName (optional, InstanceName of the ERS
instance in a Master/Slave configuration)
# OCF_RESKEY_ERS_START_PROFILE (optional, START_PROFILE of the ERS
instance in a Master/Slave configuration)
# OCF_RESKEY_PRE_START_USEREXIT (optional, lists a script which can be
executed before the resource is started)
@@ -142,6 +143,11 @@
<shortdesc lang="en">Services to monitor</shortdesc>
<content type="string"
default="disp+work|msg_server|enserver|enrepserver|jcontrol|jstart"/>
</parameter>
+ <parameter name="SHUTDOWN_METHOD" unique="1" required="0">
+ <longdesc lang="en">Usual a SAP Instance is stopped by the command
'sapcontrol -nr InstanceNr -function Stop'. SHUTDOWN_METHOD=KILL means to kill
the SAP Instance using OS commands. SAP processes of the instance are
terminated with 'kill -9', shared memory is deleted with 'cleanipc' and the
'kill.sap' file will be deleted. That method is much faster than the gracefull
stop, but the instance does not have the chance to say goodbye to other
SAPinstances in the same system. USE AT YOUR OWN RISK !!</longdesc>
+ <shortdesc lang="en">Shutdown graceful or kill a SAP instance by terminating
the processes. (normal|KILL)</shortdesc>
+ <content type="string" default="normal"/>
+ </parameter>
<parameter name="ERS_InstanceName" unique="1" required="0">
<longdesc lang="en">Only used in a Master/Slave resource configuration:
The full qualified SAP enqueue replication instance name. e.g.
P01_ERS02_sapp01ers. Usually this is the name of the SAP instance profile.
@@ -450,7 +456,18 @@
#
cleanup_instance() {
pkill -9 -f -U $sidadm $InstanceName
- $DIR_EXECUTABLE/cleanipc $InstanceNr remove
+ ocf_log info "Terminated instance using 'pkill -9 -f -U $sidadm
$InstanceName'"
+
+ # it is necessary to call cleanipc as user sidadm if the system has
'vmcj/enable = ON' set - otherwise SHM-segments in /dev/shm/SAP_ES2* cannot
beremoved
+ su - $sidadm -c "cleanipc $InstanceNr remove"
+ ocf_log info "Tried to remove shared memory resources using 'cleanipc
$InstanceNr remove' as user $sidadm"
+
+ if [ -f "/usr/sap/$SID/$InstanceName/work/" ]
+ then
+ rm -f /usr/sap/$SID/$InstanceName/work/kill.sap
+ ocf_log info "Deleted /usr/sap/$SID/$InstanceName/work/kill.sap"
+ fi
+
return 0
}
@@ -546,6 +563,13 @@
sapinstance_stop() {
sapuserexit PRE_STOP_USEREXIT "$OCF_RESKEY_PRE_STOP_USEREXIT"
+ if [ "$OCF_RESKEY_SHUTDOWN_METHOD" = "KILL" ]
+ then
+ ocf_log info "Stopping SAP Instance $SID-$InstanceName with shutdown
method KILL!"
+ cleanup_instance
+ return $OCF_SUCCESS
+ fi
+
check_sapstartsrv
rc=$?
if [ $rc -eq $OCF_SUCCESS ]; then
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/