[prev in list] [next in list] [prev in thread] [next in thread] 

List:       tomcat-user
Subject:    Re: Tomcat Connectors: local_worker and local_worker only in newer
From:       Rainer Jung <rainer.jung () kippdata ! de>
Date:       2008-03-31 18:30:28
Message-ID: 47F12DC4.3040900 () kippdata ! de
[Download RAW message or body]

Hi Philipp,

Philipp Kemper schrieb:
> Hello,
> 
>  
> 
>  
> 
> I'm running Apache 1.3 with mod_jk 1.2.7-dev and three instances of Tomcat
> 6.0.14.
> 
> Because I experienced that after a certain time some database connections
> are not closed properly and the memory use increases, we decided to restart
> the Tomcat completely. But in order to have no downtime and to be able to
> serve all sessions, I made a special setup.
> 
>  
> 
> We have 3 configurations for mod_jk:
> 
> workers.properties-01:
> 
>  
> 
> workers.tomcat_home=/u/www/WWW/einsurance/tomcat-01
> 
> workers.java_home=/usr/java
> 
> ps=/
> 
> worker.list=loadbalancer
> 
> worker.ajp13-01.port=11001
> 
> worker.ajp13-01.host=tomcathost-01
> 
> worker.ajp13-01.type=ajp13
> 
> worker.ajp13-01.lbfactor=1
> 
> worker.ajp13-01.local_worker=1
> 
> worker.ajp13-01.socket_keepalive=1
> 
>  
> 
> worker.ajp13-02.port=11002
> 
> worker.ajp13-02.host=tomcathost-02
> 
> worker.ajp13-02.type=ajp13
> 
> worker.ajp13-02.lbfactor=1
> 
> worker.ajp13-02.local_worker=0
> 
> worker.ajp13-02.socket_keepalive=1
> 
>  
> 
> worker.ajp13-03.port=11003
> 
> worker.ajp13-03.host=tomcathost-03
> 
> worker.ajp13-03.type=ajp13
> 
> worker.ajp13-03.lbfactor=1
> 
> worker.ajp13-03.local_worker=0
> 
> worker.ajp13-03.socket_keepalive=1
> 
>  
> 
> worker.loadbalancer.type=lb
> 
> worker.loadbalancer.balanced_workers=ajp13-01, ajp13-02, ajp13-03
> 
> worker.loadbalancer.local_worker_only=0
> 
>  
> 
>  
> 
> workers.properties-02:
> 
> workers.tomcat_home=/u/www/WWW/einsurance/tomcat-01
> 
> workers.java_home=/usr/java
> 
> ps=/
> 
> worker.list=loadbalancer
> 
> worker.ajp13-01.port=11001
> 
> worker.ajp13-01.host=tomcathost-01
> 
> worker.ajp13-01.type=ajp13
> 
> worker.ajp13-01.lbfactor=1
> 
> worker.ajp13-01.local_worker=0
> 
> worker.ajp13-01.socket_keepalive=1
> 
>  
> 
> worker.ajp13-02.port=11002
> 
> worker.ajp13-02.host=tomcathost-02
> 
> worker.ajp13-02.type=ajp13
> 
> worker.ajp13-02.lbfactor=1
> 
> worker.ajp13-02.local_worker=1
> 
> worker.ajp13-02.socket_keepalive=1
> 
>  
> 
> worker.ajp13-03.port=11003
> 
> worker.ajp13-03.host=tomcathost-03
> 
> worker.ajp13-03.type=ajp13
> 
> worker.ajp13-03.lbfactor=1
> 
> worker.ajp13-03.local_worker=0
> 
> worker.ajp13-03.socket_keepalive=1
> 
>  
> 
> worker.loadbalancer.type=lb
> 
> worker.loadbalancer.balanced_workers=ajp13-01, ajp13-02, ajp13-03
> 
> worker.loadbalancer.local_worker_only=0
> 
>  
> 
>  
> 
> workers.properties-03:
> 
> workers.tomcat_home=/u/www/WWW/einsurance/tomcat-01
> 
> workers.java_home=/usr/java
> 
> ps=/
> 
> worker.list=loadbalancer
> 
> worker.ajp13-01.port=11001
> 
> worker.ajp13-01.host=tomcathost-01
> 
> worker.ajp13-01.type=ajp13
> 
> worker.ajp13-01.lbfactor=1
> 
> worker.ajp13-01.local_worker=0
> 
> worker.ajp13-01.socket_keepalive=1
> 
>  
> 
> worker.ajp13-02.port=11002
> 
> worker.ajp13-02.host=tomcathost-02
> 
> worker.ajp13-02.type=ajp13
> 
> worker.ajp13-02.lbfactor=1
> 
> worker.ajp13-02.local_worker=0
> 
> worker.ajp13-02.socket_keepalive=1
> 
>  
> 
> worker.ajp13-03.port=11003
> 
> worker.ajp13-03.host=tomcathost-03
> 
> worker.ajp13-03.type=ajp13
> 
> worker.ajp13-03.lbfactor=1
> 
> worker.ajp13-03.local_worker=1
> 
> worker.ajp13-03.socket_keepalive=1
> 
>  
> 
> worker.loadbalancer.type=lb
> 
> worker.loadbalancer.balanced_workers=ajp13-01, ajp13-02, ajp13-03
> 
> worker.loadbalancer.local_worker_only=0
> 
>  
> 
> Sticky Sessions are activated and necessary!
> 
>  
> 
> Every 2 minutes a shell script (via crontab) is executed that checks whether
> all three instances (Tomcat-01, Tomcat-02, Tomcat-03) are running.
> 
> If not all instances are running, the script starts the first (only one each
> time) instance from his list, that is not running (Is Tomcat-01 running? Is
> Tomcat-02 running? Is Tomcat-03 running?).
> 
> If it has to start the third instance, it sets an at job that kills the
> oldest Tomcat after 60 minutes.
> 
> Then it links the properties file to the specific workers.properties pasted
> above (e.g. workers.properties -> workers.properties-02 when Tomcat-02 is
> started) and gracefully restarts Apache.
> 
>  
> 
> The effect is that the recently started Tomcat gets the new sessions (and
> only he!) because it's workers.properties file has been linked. Because of
> sticky sessions, no older session gets lost and is still served by the
> appropriate Tomcat. It's important that only the newest Tomcat gets the new
> sessions because the oldest Tomcat will be killed by an at job (and sessions
> must never get lost). When he gets restarted it automatically takes over the
> new sessions.
> 
>  
> 
> The problem now is that local_worker_only and local_worker have been removed
> in newer versions of mod_jk.
> 
>  
> 
> Is there any way to realise my current setup with the new configuration
> flags of workers.properties?
> 
>  
> 
>  
> 
> Greetings
> 
> Philipp

Yes:

1) Direct migration of the config:

local_worker=1 -> distance=0
local_worker=0 -> distance=1
local_worker_only=0 -> -

This will behave the same, as your config.

2) Use activation attribute:

activation=d (or disabled)

lb does not use this member for requests, which do not belong to a session

activation=s (or stopped)

lb does not use this member for any request

activation=a (or active)

lb can use this member whenever it likes

Caution: the lb doesn't know if a session is valid. It simply looks for 
the presence of a session cookie or URL encoded session, when it checks, 
if it is allowed to send it to a disabled worker or not.

Setting activation to disabled usually means that the node dries out 
(the number of active session decreases until it gets very low).

Regards,

Rainer




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic