Hi,

I'm using RHEL5.5 in a Heartbeat/Pacemaker cluster managing Tomcat and Apache 
HTTPD on two nodes using the ocf:heartbeat:tomcat resource agent for Tomcat.

Specific versions:
resource-agents 1.0.3-1
heartbeat-libs-3.0.3-1
heartbeat-3.0.3-1
pacemaker-1.0.8-1.0hg20100317.8debc1902e13
Tomcat 6.0.26 (downloaded from source).

I have modified the Tomcat resource agent to be capable of controlling multiple 
Tomcat instances by exporting CATALINA_BASE as well as CATALINA_HOME - these 
are the only changes I've made to the resource agent (this is why the agent 
path is 'intact' instead of 'heartbeat' in the process list below) - diff 
attached.

When manually issuing a restart of the clone resource on tomcat I'm left with a 
dead 'start' process:

(before restart):
[r...@fmp-dun-tapp1 ~]# ps -efH | grep [t]omcat
root     22754 21037  0 10:09 pts/0    00:00:00         grep tomcat
root      5058     1  0 Jul07 ?        00:00:00   /bin/sh 
/usr/lib/ocf/resource.d//intact/tomcat start
tomcat    5101     1  0 Jul07 ?        00:00:19   /usr/lib/jvm/java/bin/java 
-Djava.util.logging.config.file=/home/tomcat/tc-1/conf/logging.properties 
-Dname=tomcat -Djava.awt.headless=true -Djava.library.path=/usr/lib64 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx1024M 
-Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath 
/opt/tomcat/bin/bootstrap.jar -Dcatalina.base=/home/tomcat/tc-1 
-Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/home/tomcat/tc-1/temp 
org.apache.catalina.startup.Bootstrap start

(after restart):
[r...@fmp-dun-tapp1 ~]# ps -efH | grep [t]omcat
root      5058     1  0 Jul07 ?        00:00:00   /bin/sh 
/usr/lib/ocf/resource.d//intact/tomcat start
root      2271     1  0 10:26 ?        00:00:00   /bin/sh 
/usr/lib/ocf/resource.d//intact/tomcat start
tomcat    2307     1 21 10:26 ?        00:00:02   /usr/lib/jvm/java/bin/java 
-Djava.util.logging.config.file=/home/tomcat/tc-1/conf/logging.properties 
-Dname=tomcat -Djava.awt.headless=true -Djava.library.path=/usr/lib64 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx1024M 
-Djava.endorsed.dirs=/opt/tomcat/endorsed -classpath 
/opt/tomcat/bin/bootstrap.jar -Dcatalina.base=/home/tomcat/tc-1 
-Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/home/tomcat/tc-1/temp 
org.apache.catalina.startup.Bootstrap start

Note the two 'tomcat start' processes above.
Each restart produces successively more copies of the 'tocmat start' process.

Does anyone know why this would occur? I thought the call to 'catalina.sh 
start' which is backgrounded in 
tomcat_start function in resource should exit after starting Tomcat - but 
apparently it doesn't.

Any help / trouble-shooting tips appreciated.

Thanks,

Best Regards,

Brett 




______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________
--- tomcat	2010-07-08 09:34:13.000000000 +0100
+++ tomcat.intact	2010-07-08 10:24:51.000000000 +0100
@@ -29,7 +29,9 @@
 #   OCF_RESKEY_tomcat_user  - A user name to start a resource. Default is root
 #   OCF_RESKEY_statusurl - URL for state confirmation. Default is http://127.0.0.1:8080
 #   OCF_RESKEY_java_home - Home directory of the Java. Default is None
+#   OCF_RESKEY_java_opts - Options to parse to Java. Always adds -Dname=OCF_RESKEY_tomcat_name
 #   OCF_RESKEY_catalina_home - Home directory of Tomcat. Default is None
+#   OCF_RESKEY_catalina_base - Base directory of Tomcat. Default is None
 #   OCF_RESKEY_catalina_pid  - A PID file name of Tomcat. Default is OCF_RESKEY_catalina_home/logs/catalina.pid
 #   OCF_RESKEY_tomcat_start_opts - Start options of the tomcat. Default is None.
 #   OCF_RESKEY_catalina_opts - CATALINA_OPTS environment variable. Default is None.
@@ -147,11 +149,12 @@
 			>> "$TOMCAT_CONSOLE" 2>&1 &
 	else
 		su - -s /bin/sh "$RESOURCE_TOMCAT_USER" \
-			-c "export JAVA_HOME=${OCF_RESKEY_java_home};\n
-                            export JAVA_OPTS=-Dname=${TOMCAT_NAME};\n
-                            export CATALINA_HOME=${OCF_RESKEY_catalina_home};\n
-                            export CATALINA_PID=${OCF_RESKEY_catalina_pid};\n
-                            export CATALINA_OPTS=\"${OCF_RESKEY_catalina_opts}\";\n
+			-c "export JAVA_HOME=${OCF_RESKEY_java_home};\
+                            export JAVA_OPTS=\"-Dname=${TOMCAT_NAME} ${OCF_RESKEY_java_opts}\";\
+                            export CATALINA_HOME=${OCF_RESKEY_catalina_home};\
+                            export CATALINA_BASE=${OCF_RESKEY_catalina_base};\
+                            export CATALINA_PID=${OCF_RESKEY_catalina_pid};\
+                            export CATALINA_OPTS=\"${OCF_RESKEY_catalina_opts}\";\
                             $CATALINA_HOME/bin/catalina.sh start ${OCF_RESKEY_tomcat_start_opts}" \
 			>> "$TOMCAT_CONSOLE" 2>&1 &
 	fi
@@ -182,10 +185,11 @@
 		eval $tomcat_stop_cmd >> "$TOMCAT_CONSOLE" 2>&1
 	else
 		su - -s /bin/sh "$RESOURCE_TOMCAT_USER" \
-			-c "export JAVA_HOME=${OCF_RESKEY_java_home};\n
-                            export JAVA_OPTS=-Dname=${TOMCAT_NAME};\n
-                            export CATALINA_HOME=${OCF_RESKEY_catalina_home};\n
-                            export CATALINA_PID=${OCF_RESKEY_catalina_pid};\n
+			-c "export JAVA_HOME=${OCF_RESKEY_java_home};\
+                            export JAVA_OPTS=\"-Dname=${TOMCAT_NAME} ${OCF_RESKEY_java_opts}\";\
+                            export CATALINA_HOME=${OCF_RESKEY_catalina_home};\
+                            export CATALINA_BASE=${OCF_RESKEY_catalina_base};\
+                            export CATALINA_PID=${OCF_RESKEY_catalina_pid};\
                             $CATALINA_HOME/bin/catalina.sh stop" \
 			>> "$TOMCAT_CONSOLE" 2>&1
 	fi
@@ -316,6 +320,14 @@
 <content type="string" default="" />
 </parameter>
 
+<parameter name="java_opts" unique="0">
+<longdesc lang="en">
+Java options
+</longdesc>
+<shortdesc>Java options</shortdesc>
+<content type="string" default="" />
+</parameter>
+
 <parameter name="catalina_home" unique="1" required="1">
 <longdesc lang="en">
 Home directory of Tomcat
@@ -324,6 +336,14 @@
 <content type="string" default="" />
 </parameter>
 
+<parameter name="catalina_base" unique="1">
+<longdesc lang="en">
+Instance directory of Tomcat
+</longdesc>
+<shortdesc>Instance directory of Tomcat</shortdesc>
+<content type="string" default="" />
+</parameter>
+
 <parameter name="catalina_pid" unique="1">
 <longdesc lang="en">
 A PID file name of Tomcat
@@ -397,9 +417,10 @@
 RESOURCE_STATUSURL="${OCF_RESKEY_statusurl-http://127.0.0.1:8080}";
 
 JAVA_HOME="${OCF_RESKEY_java_home}"
-JAVA_OPTS="-Dname=$TOMCAT_NAME"
+JAVA_OPTS="-Dname=$TOMCAT_NAME ${OCF_RESKEY_java_opts}"
 SEARCH_STR="\\""${JAVA_OPTS}"
 CATALINA_HOME="${OCF_RESKEY_catalina_home}"
+CATALINA_BASE="${OCF_RESKEY_catalina_base}"
 CATALINA_PID="${OCF_RESKEY_catalina_pid-$CATALINA_HOME/logs/catalina.pid}"
 
 TOMCAT_START_OPTS="${OCF_RESKEY_tomcat_start_opts}"
@@ -407,7 +428,7 @@
 CATALINA_ROTATE_LOG="${OCF_RESKEY_catalina_rotate_log-NO}"
 CATALINA_ROTATETIME="${OCF_RESKEY_catalina_rotatetime-86400}"
 
-export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_PID CATALINA_OPTS
+export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE CATALINA_PID CATALINA_OPTS
 
 JAVA=${JAVA_HOME}/bin/java
 
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to