# HG changeset patch
SAPDatabase: new version 1.93

Changes:
Fixed tr [:upper:] [:lower:] issue
Fixed wrong scope of rc variable in service_start/stop functions
Changed Oracle recovery method from "recover automatic database" to "end backup"

diff -r fca5c8f3948a heartbeat/SAPDatabase
--- a/heartbeat/SAPDatabase	Tue Dec 07 17:25:01 2010 +0100
+++ b/heartbeat/SAPDatabase	Wed Dec 08 23:27:54 2010 +0100
@@ -70,7 +70,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
 <resource-agent name="SAPDatabase">
-<version>1.92</version>
+<version>1.93</version>
 
 <longdesc lang="en">
 Resource script for SAP databases. It manages a SAP database of any type as an HA resource.
@@ -178,26 +178,26 @@
 # listener_start: Start the given listener
 #
 listener_start() {
-  orasid="ora`echo $SID | tr [:upper:] [:lower:]`"
-  rc=$OCF_SUCCESS
+  orasid="ora`echo $SID | tr '[:upper:]' '[:lower:]'`"
+  lrc=$OCF_SUCCESS
   output=`echo "lsnrctl start $NETSERVICENAME" | su - $orasid 2>&1`
   if [ $? -eq 0 ]
   then
     ocf_log info "Oracle Listener $NETSERVICENAME started: $output"
-    rc=$OCF_SUCCESS
+    lrc=$OCF_SUCCESS
   else
     ocf_log err "Oracle Listener $NETSERVICENAME start failed: $output"
-    rc=$OCF_ERR_GENERIC
+    lrc=$OCF_ERR_GENERIC
   fi
-  return $rc
+  return $lrc
 }
 
 #
 # listener_stop: Stop the given listener
 #
 listener_stop() {
-  orasid="ora`echo $SID | tr [:upper:] [:lower:]`"
-  rc=$OCF_SUCCESS
+  orasid="ora`echo $SID | tr '[:upper:]' '[:lower:]'`"
+  lrc=$OCF_SUCCESS
   if
       listener_status
   then
@@ -211,60 +211,60 @@
     ocf_log info "Oracle Listener $NETSERVICENAME stopped: $output"
   else
     ocf_log err "Oracle Listener $NETSERVICENAME stop failed: $output"
-    rc=$OCF_ERR_GENERIC
+    lrc=$OCF_ERR_GENERIC
   fi
-  return $rc
+  return $lrc
 }
 
 #
 # listener_status: is the given listener running?
 #
 listener_status() {
-  orasid="ora`echo $SID | tr [:upper:] [:lower:]`"
+  orasid="ora`echo $SID | tr '[:upper:]' '[:lower:]'`"
   # Note: ps cuts off it's output at column $COLUMNS, so "ps -ef" can not be used here
   # as the output might be to long.
   cnt=`ps efo args --user $orasid | grep $NETSERVICENAME | grep -c tnslsnr`
   if [ $cnt -eq 1 ]
   then
-    rc=$OCF_SUCCESS
+    lrc=$OCF_SUCCESS
   else
     ocf_log info "listener process not running for $NETSERVICENAME for $SID"
-    rc=$OCF_ERR_GENERIC
+    lrc=$OCF_ERR_GENERIC
   fi
-  return $rc
+  return $lrc
 }
 
 #
 # x_server_start: Start the given x_server
 #
 x_server_start() {
-  rc=$OCF_SUCCESS
+  lrc=$OCF_SUCCESS
   output=`echo "x_server start" | su - $sidadm 2>&1`
   if [ $? -eq 0 ]
   then
     ocf_log info "MaxDB x_server start: $output"
-    rc=$OCF_SUCCESS
+    lrc=$OCF_SUCCESS
   else
     ocf_log err "MaxDB x_server start failed: $output"
-    rc=$OCF_ERR_GENERIC
+    lrc=$OCF_ERR_GENERIC
   fi
-  return $rc
+  return $lrc
 }
 
 #
 # x_server_stop: Stop the x_server
 #
 x_server_stop() {
-  rc=$OCF_SUCCESS
+  lrc=$OCF_SUCCESS
   output=`echo "x_server stop" | su - $sidadm 2>&1`
   if [ $? -eq 0 ]
   then
     ocf_log info "MaxDB x_server stop: $output"
   else
     ocf_log err "MaxDB x_server stop failed: $output"
-    rc=$OCF_ERR_GENERIC
+    lrc=$OCF_ERR_GENERIC
   fi
-  return $rc
+  return $lrc
 }
 
 #
@@ -277,12 +277,12 @@
   cnt=`ps efo args --user $sdbuser | grep -c vserver`
   if [ $cnt -ge 1 ]
   then
-    rc=$OCF_SUCCESS
+    lrc=$OCF_SUCCESS
   else
     ocf_log info "x_server process not running"
-    rc=$OCF_ERR_GENERIC
+    lrc=$OCF_ERR_GENERIC
   fi
-  return $rc
+  return $lrc
 }
 
 #
@@ -416,9 +416,7 @@
 connect / as sysdba
 shutdown abort
 startup mount
-WHENEVER SQLERROR EXIT SQL.SQLCODE
-WHENEVER OSERROR EXIT FAILURE
-alter database recover automatic database;
+alter database end backup;
 alter database open;
 exit
 !
@@ -479,7 +477,7 @@
 # db6udb_recover: try to recover DB/2 after a crash
 #
 db6udb_recover() {
-  db2sid="db2`echo $SID | tr [:upper:] [:lower:]`"
+  db2sid="db2`echo $SID | tr '[:upper:]' '[:lower:]'`"
 
 echo '#!/bin/sh
 LOG=$HOME/recover.log
@@ -729,12 +727,12 @@
          SNUM=2
          ;;
     ORA) SEARCH="ora_[a-z][a-z][a-z][a-z]_"
-         SUSER="ora`echo $SID | tr [:upper:] [:lower:]`"
+         SUSER="ora`echo $SID | tr '[:upper:]' '[:lower:]'`"
          SNUM=4
          ;;
-    DB6) SEARCH="db2[a-z][a-z][a-z][a-z][a-z]"
-         SUSER="db2`echo $SID | tr [:upper:] [:lower:]`"
-         SNUM=5
+    DB6) SEARCH="db2[a-z][a-z][a-z]"
+         SUSER="db2`echo $SID | tr '[:upper:]' '[:lower:]'`"
+         SNUM=2
          ;;
   esac
 
@@ -970,7 +968,7 @@
   LD_LIBRARY_PATH=$DIR_EXECUTABLE${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
   export LD_LIBRARY_PATH
 fi
-sidadm="`echo $SID | tr [:upper:] [:lower:]`adm"
+sidadm="`echo $SID | tr '[:upper:]' '[:lower:]'`adm"
 
 # What kind of method was invoked?
 case "$1" in
