Felix, Dis you check my workaround ?
On Wed, Apr 27, 2011 at 7:01 PM, Felix Schumacher < felix.schumac...@internetallee.de> wrote: > Am Mittwoch, den 27.04.2011, 10:21 +0200 schrieb Felix Schumacher: > > On Wed, 27 Apr 2011 09:58:45 +0200, Felix Schumacher wrote: > > > On Tue, 26 Apr 2011 21:24:16 +0100, Guillaume Favier wrote: > > >> Thanks for your answer Felix, > > > Well, after rethinking my original answer, I think you will have to > > > define two clusters: > > > > > > worker.list=cluster1,cluster2 > > > > > ... > > > worker.c2t2.type=ajp13 > > > worker.c2t2.host=localhost > > > worker.c2t2.port=9002 > > > worker.c2t2.redirect=c1t1 > > Aargh, this should be > > worker.c2t2.redirect=c2t1 > Ok, last correction. redirect takes the name of the jvmRoute, not that > of the worker. So those two configuration entries should be > > worker.c2t2.redirect=tomcat1 > worker.c1t1.redirect=tomcat2 > > argh you're right, but with my work around you can avoid dealing with the route, it is a bit more scalable. I implement a workaround by dealing with lbfactor : worker.c1t1.lbfactor=100 worker.c1t1.redirect=cluster1 worker.c1t2.lbfactor=1 worker.c1t2.redirect=cluster1 #worker.c1t2.activation=disabled It is very unlikely that i get 100 request on one server. This does looks good but a pretty complex configuration if we move up to three server. And complexity will increase with the number of server. Seems that load balancing is easier than failover. gui > Regards > Felix > > > > Bye > > Felix > > > > > > You will have to set "jvmRoute" in your tomcats to "tomcat1" and > > > "tomcat2". > > > > > > To mount your webapps, you can use > > > > > > JkMount /ABC* cluster1 > > > JkMount /DEF* cluster2 > > > > > > Regards > > > Felix > > > > > >> > > >> > > >> On Tue, Apr 26, 2011 at 8:36 PM, Felix Schumacher < > > >> felix.schumac...@internetallee.de> wrote: > > >> > > >>> On Mon, 25 Apr 2011 09:40:59 +0100, Guillaume Favier wrote: > > >>> > > >>>> Hi, > > >>>> > > >>>> I have 2 tomcat 5.5 server. Each of them handling a set (50+) of > > >>>> third > > >>>> party > > >>>> webapps name /ABC* and /DEF*. > > >>>> Each of these webapp is quite memory consumming when started (more > > >>>> than > > >>>> 300M). > > >>>> I would like all connection to ABC* webapps be handled by tomcat > > >>>> server 1, > > >>>> and connection to webapps DEF* to be handled by tomcat server 2. > > >>>> > > >>>> My objectives are : > > >>>> * server 1 to be failover of server2 and server2 failover of > > >>>> server1. > > >>>> * any webapp should be instanciate on only one server otherwise it > > >>>> might > > >>>> trigger a memory overload > > >>>> > > >>>> So I set up my httpd.conf as is : > > >>>> > > >>>> JkWorkersFile "conf/worker.properties" > > >>>> JkOptions +ForwardKeySize +ForwardURICompat > > >>>> > > >>>> > > >>>> and my worker.properties as is : > > >>>> > > >>>> worker.list = failover > > >>>> > > >>>> # ------------------------ > > >>>> # template > > >>>> # ------------------------ > > >>>> worker.template.type=ajp13 > > >>>> worker.template.lbfactor=1 > > >>>> worker.template.connection_pool_timeout=600 > > >>>> worker.template.socket_timeout=1000 > > >>>> worker.template.fail_on_status=500 > > >>>> > > >>>> # ------------------------ > > >>>> # tomcat1 > > >>>> # ------------------------ > > >>>> worker.tomcat1.reference=worker.template > > >>>> worker.tomcat1.port=9001 > > >>>> worker.tomcat1.host=localhost > > >>>> worker.tomcat1.mount=/ABC* /ABC/* > > >>>> worker.tomcat1.redirect=failover > > >>>> > > >>>> # ------------------------ > > >>>> # tomcat2 > > >>>> # ------------------------ > > >>>> worker.tomcat2.reference=worker.template > > >>>> worker.tomcat2.port=9002 > > >>>> worker.tomcat2.host=localhost > > >>>> worker.tomcat1.mount=/DEF* /DEF/* > > >>>> > > >>> ^ is this correct or a typo? > > >> > > >> > > >> Sorry for the typo, you're right : it is in fact : > > >> worker.tomcat2.mount=/DEF* /DEF/* > > >> > > >> > > >>> worker.tomcat2.redirect=failover > > >>>> > > >>>> > > >>>> # ------------------------ > > >>>> # failover > > >>>> # ------------------------ > > >>>> worker.failover.type=lb > > >>>> worker.failover.balance_workers=tomcat1,tomcat2 > > >>>> > > >>>> The jvmroute is set in both server.xml. > > >>>> > > >>>> Previously I had put the jkMount directive in httpd.conf, but I > > >>>> could'nt > > >>>> make the failover work. So I move it in the worker.properties. > > >>>> Tomcat doesn't seem to take into account the jkmount directive > > >>>> from the > > >>>> worker.properties : a webapp is started indifrently on any server. > > >>>> > > >>> Tomcat starts all webapps it can find, not only those you specified > > >>> by a jk > > >>> mount. Servlets will > > >>> only start, if you specify a startup order, or trigger a request to > > >>> a > > >>> servlet. > > >>> > > >>> > > >> Ok, maybe I should clarify that : > > >> 1) tomcat starts all webapps > > >> 2) when a users connect to a specific webapp all objects are > > >> instanciate and > > >> therefore the memory footprint drasticaly increase. > > >> I want to work on the second point : a webapp should be instanciate > > >> only on > > >> one server. > > >> > > >> > > >> > > >>> So I don't think it is possible to prevent a webapp from starting > > >>> in the > > >>> "failover" tomcat. But it > > >>> should be possible to limit its memory footprint. > > >>> > > >> > > >> I have done some optimisation here and already removed all shared > > >> classes, > > >> jar, etc... > > >> > > >> > > >>> That said, I find it strange, that you define a special failover > > >>> worker > > >>> instead of a direct redirect like > > >>> > > >>> worker.tomcat1.redirect=tomcat2 > > >>> worker.tomcat2.redirect=tomcat1 > > >>> > > >>> > > >> But that would mean (solution already tested) : I have to declare it > > >> in the > > >> worker list, so when a server fail httpd will continue to try to > > >> contact it > > >> instead of contacting the failover worker and find a another worker > > >> -> even if it works it would only work for 2 servers not for 3. > > >> > > >> thanks > > >> gui > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >