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

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

Reply via email to