Hi Brett, On Thu, Jul 15, 2010 at 06:56:57PM +0100, Brett Delle Grazie wrote: > Hi, > > I should document these things better... > > Additional clarification interleaved in your email. > > The environment variables: > CATALINA_HOME > CATALINA_BASE > JAVA_OPTS > CATALINA_OPTS > CATALINA_PID > are all documented fully in RUNNING.TXT included with Tomcat. > Normally only CATALINA_HOME, CATALINA_BASE and CATALINA_PID are set prior to > calling > the start/stop scripts. The others are typically set in the 'setenv.sh' file > which is > usually in the Tomcat instance's bin directory. > > In case you're wondering I'm editing this in Outlook Web Access, so the result > might not be pretty (apologies). Let me know if you require > any further clarification.
I really hope that you changed the mail agent in the meantime! > -----Original Message----- > From: Dejan Muhamedagic [mailto:deja...@fastmail.fm] > Sent: Thu 15/07/2010 17:00 > To: General Linux-HA mailing list > Subject: Re: [Linux-HA] Tomcat resource agent - PATCH3 - supports multiple > tomcat instance configurations > > Hi, > > On Wed, Jul 14, 2010 at 05:54:28PM +0100, Brett Delle Grazie wrote: > > Hi, > > > > This patch provides support for multiple instance tomcat > > configurations (i.e. where CATALINA_BASE is configured) as > > per Tomcat documentation. > > There are changes in this patch which seem to be unrelated. I'm > not a tomcat expert, so I'm not sure. > > - there's a fix for CATALINA_PID (the old version wouldn't use > the default, though that default has never been advertised in > the meta-data) > That's a direct side-effect of me changing the start/stop operations > to using the locally copied version of the parameters rather than their > original OCF_RESKEY_xxxx versions. Otherwise defaults are not observed. > In particular catalina_base must default to catalina_home if not set. > > - -Dname=... got moved to CATALINA_OPTS > Yes, in Tomcat start/stop script catalina.sh, CATALINA_OPTS is only used > during start operation whereas JAVA_OPTS is used during both operations. > It belongs in CATALINA_OPTS. Originally it was being set in the start > operation so this didn't matter but I was trying to keep things consistent > so I set it in the default list and the only place it can safely go is > CATALINA_OPTS. I really don't like this solution for a process check, > it has the feel of a hack.. we have the PID, why not use that? Yes, one could use the pid file too. But then a process could disappear without removing the PID file. Or vice-versa. So, checking the actual process list is somewhat better IMO. BTW, with this change you break the monitor, because: SEARCH_STR="\\""${JAVA_OPTS}" but the -D...=$TOMCAT_NAME got moved to CATALINA_OPTS. > - there's a new parameter catalina_base: does this one enable > multiple instances? > Only if its different from catalina_home. To use this, one should read the > RUNNING.TXT that comes with Tomcat. Its default should always be > catalina_home to > preserve existing behaviour OK. > - there's a new parameter java_opts: and this one too? > Used during both start and stop operations. Used to pass parameters to the JVM > running the start/stop operation - typically things like > java.awt.headless=true. > It was being exported previously but there was no way to set it. OK. > That seems like four changes to me. I can't apply the patch as > it is without further clarification. Is there any chance that you split this patch into several. Independent changes should be submitted as different changesets. Though I must say that I'm not absolutely sure, the changes which you explained above do seem independent. Cheers, Dejan > And many thanks for sharing the improvements. > > Cheers, > > Dejan > > > Tested with current Tomcat (6.0.28). > > > > I hope this helps. > > > > 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-14 11:22:57.000000000 +0100 > > +++ tomcat.intact 2010-07-14 12:44:46.000000000 +0100 > > @@ -29,10 +29,12 @@ > > # 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 Java. Default is none > > +# OCF_RESKEY_java_opts - Options to pass to Java JVM for start and stop. > > Default is none > > # 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 Tomcat. Default is > > none. > > -# OCF_RESKEY_catalina_opts - CATALINA_OPTS environment variable. Default > > is none. > > +# OCF_RESKEY_catalina_opts - Options to pass to Java JVM for start > > operation, always adds -Dname=${OCF_RESKEY_tomcat_name}. Default is none. > > # OCF_RESKEY_catalina_rotate_log - Control catalina.out logrotation > > flag. Default is NO. > > # OCF_RESKEY_catalina_rotatetime - catalina.out logrotation time > > span(seconds). Default is 86400. > > > > ############################################################################### > > @@ -147,12 +149,13 @@ > > >> "$TOMCAT_CONSOLE" 2>&1 & > > else > > su - -s /bin/sh "$RESOURCE_TOMCAT_USER" \ > > - -c "export JAVA_HOME=${OCF_RESKEY_java_home};\ > > - export JAVA_OPTS=-Dname=${TOMCAT_NAME};\ > > - export > > CATALINA_HOME=${OCF_RESKEY_catalina_home};\ > > - 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}" \ > > + -c "export JAVA_HOME=${JAVA_HOME};\ > > + export JAVA_OPTS=\"${JAVA_OPTS}\";\ > > + export CATALINA_HOME=${CATALINA_HOME};\ > > + export CATALINA_BASE=${CATALINA_BASE};\ > > + export CATALINA_PID=${CATALINA_PID};\ > > + export CATALINA_OPTS=\"${CATALINA_OPTS}\";\ > > + $CATALINA_HOME/bin/catalina.sh start > > ${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};\ > > - export JAVA_OPTS=-Dname=${TOMCAT_NAME};\ > > - export > > CATALINA_HOME=${OCF_RESKEY_catalina_home};\ > > - export > > CATALINA_PID=${OCF_RESKEY_catalina_pid};\ > > + -c "export JAVA_HOME=${JAVA_HOME};\ > > + export JAVA_OPTS=\"${JAVA_OPTS}\";\ > > + export CATALINA_HOME=${CATALINA_HOME};\ > > + export CATALINA_BASE=${CATALINA_BASE};\ > > + export CATALINA_PID=${CATALINA_PID};\ > > $CATALINA_HOME/bin/catalina.sh stop" \ > > >> "$TOMCAT_CONSOLE" 2>&1 & > > fi > > @@ -262,7 +266,7 @@ > > > > <parameter name="tomcat_name" unique="1" > > > <longdesc lang="en"> > > -The name of the resource, added as a Java parameter in JAVA_OPTS: > > -Dname=<tomcat_name> to Tomcat > > +The name of the resource, added as a Java parameter in CATALINA_OPTS: > > -Dname=<tomcat_name> to Tomcat > > process on start. Used to ensure process is still running and must be > > unique amongst all Tomcat > > instances in this cluster. > > </longdesc> > > @@ -318,6 +322,14 @@ > > <content type="string" default="" /> > > </parameter> > > > > +<parameter name="java_opts" unique="0"> > > +<longdesc lang="en"> > > +Java JVM options used on start and stop > > +</longdesc> > > +<shortdesc>Java options parsed to JVM, used on start and stop</shortdesc> > > +<content type="string" default="" /> > > +</parameter> > > + > > <parameter name="catalina_home" unique="1" required="1"> > > <longdesc lang="en"> > > Home directory of Tomcat > > @@ -326,6 +338,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, defaults to > > catalina_home</shortdesc> > > +<content type="string" default="" /> > > +</parameter> > > + > > <parameter name="catalina_pid" unique="1"> > > <longdesc lang="en"> > > A PID file name for Tomcat > > @@ -344,9 +364,9 @@ > > > > <parameter name="catalina_opts" unique="0"> > > <longdesc lang="en"> > > -Catalina options, applied on start operation only > > +Java JVM options used on start only > > </longdesc> > > -<shortdesc>Catalina options</shortdesc> > > +<shortdesc>Java JVM options used on start</shortdesc> > > <content type="string" default="" /> > > </parameter> > > > > @@ -399,17 +419,18 @@ > > RESOURCE_STATUSURL="${OCF_RESKEY_statusurl-http://127.0.0.1:8080}" > > > > JAVA_HOME="${OCF_RESKEY_java_home}" > > -JAVA_OPTS="-Dname=$TOMCAT_NAME" > > +JAVA_OPTS="${OCF_RESKEY_java_opts}" > > SEARCH_STR="\\""${JAVA_OPTS}" > > CATALINA_HOME="${OCF_RESKEY_catalina_home}" > > +CATALINA_BASE="${OCF_RESKEY_catalina_base-${OCF_RESKEY_catalina_home}}" > > CATALINA_PID="${OCF_RESKEY_catalina_pid-$CATALINA_HOME/logs/catalina.pid}" > > > > TOMCAT_START_OPTS="${OCF_RESKEY_tomcat_start_opts}" > > -CATALINA_OPTS="${OCF_RESKEY_catalina_opts}" > > +CATALINA_OPTS="-Dname=$TOMCAT_NAME ${OCF_RESKEY_catalina_opts}" > > 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 > > Linux-HA@lists.linux-ha.org > > http://lists.linux-ha.org/mailman/listinfo/linux-ha > > See also: http://linux-ha.org/ReportingProblems > > > > > ______________________________________________________________________ > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ > _______________________________________________ > Linux-HA mailing list > Linux-HA@lists.linux-ha.org > http://lists.linux-ha.org/mailman/listinfo/linux-ha > See also: http://linux-ha.org/ReportingProblems _______________________________________________ Linux-HA mailing list Linux-HA@lists.linux-ha.org http://lists.linux-ha.org/mailman/listinfo/linux-ha See also: http://linux-ha.org/ReportingProblems