BACKGROUND INFORMATION:
I have used mod_jk to configure Apache to work as a load balancer for
two Tomcat server instances. To these Tomcat instances, I have
deployed two Web Applications, "ts_core_virtual_repository" and "pum".
These Web Applications are actually simple servlets that DO NOT use
J2EE sessions, so even though I want to retain support for sticky
sessions for future purposes, that is not necessary yet.

I have set up failover for my Web Applications by setting the
following in worker.properties for the loadbalancer workers:

        worker.template.fail_on_status=500

This effectually means that any ServletExceptions that the Web
Applications throw cause failover to happen: the worker moves to ERR
state and the request gets transparently forwarded to the next
available worker. My stateless servlets expect and are prepared for
this!

THE CONFIGURATION PROBLEM:
Should "ts_core_virtual_repository" application fail by throwing
ServletException, the loadbalancer also interprets "pum" application
as having failed and starts to forward its request to other workers. I
would like the loadbalancer to treat the applications individually for
500 Internal Servlet Error failover purposes. What would be the best
way to do this?

Although we are not short of machine resources, the solution should
not be unnecessarily wasteful and silly - for example, I would NOT
like to create a set of totally new, separate Tomcat server instances
for different applications. Who knows, there might be a third or
fourth web application in the future, so the solution should be
somewhat scalable and maintainable.

MY CURRENT CONFIGURATION:

httpd.conf:
LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so
JkWorkersFile conf/ts_tomcat-workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /ts_core_virtual_repository/* loadbalancer
JkMount /jkstatus/* jkstatus
JkMount /pum/* loadbalancer

ts_tomcat-worker.properties:
worker.list=loadbalancer,jkstatus
worker.template.type=ajp13
worker.template.host=localhost
worker.template.port=8110
worker.template.lbfactor=1
worker.template.connection_pool_timeout=600
worker.template.socket_keepalive=true
worker.template.socket_timeout=10
worker.template.ping_mode=A
worker.template.ping_timeout=4000
worker.template.fail_on_status=500
worker.worker1.reference=worker.template
worker.worker1.port=8110
worker.worker2.reference=worker.template
worker.worker2.port=8111
worker.jkstatus.type=status
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker1,worker2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=false
worker.loadbalancer.recover_time=60
worker.loadbalancer.error_escalation_time=0

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to