Hello Team,

After making changes to worker list as mentioned in the below mail.

worker.list=loadbalancer.

We are noticing following messages in the log files and we are getting 500 
error messages while accessing URL.

[Tue Sep 07 12:34:52.904 2010] [15711:27] [info] jk_handler::mod_jk.c (2254): 
No body with status=500 for worker=loadbalancer
[Tue Sep 07 12:34:58.630 2010] [15712:27] [info] jk_handler::mod_jk.c (2254): 
No body with status=500 for worker=loadbalancer
[Tue Sep 07 12:39:48.018 2010] [15711:27] [info] jk_handler::mod_jk.c (2254): 
No body with status=500 for worker=loadbalancer



--- On Tue, 9/7/10, Rainer Jung <rainer.j...@kippdata.de> wrote:

From: Rainer Jung <rainer.j...@kippdata.de>
Subject: Re: Unable to acheive load balcing using mod_jk
To: "Tomcat Users List" <users@tomcat.apache.org>
Date: Tuesday, September 7, 2010, 3:02 PM

On 07.09.2010 11:15, Mladen Turk wrote:
> On 09/07/2010 11:02 AM, Amol Puglia wrote:
>> Hello Team,
>> 
>> Below are the details of workers.properties file and httpd.conf file.
>> 
>> # lists the workers by name
>> 
>> worker.list=tomcat1, tomcat2, tomcat3, loadbalancer
>> 
> 
> This should be
> worker.list=loadbalancer
> 
> Note that workers that constitute load balancer must
> not appear in the worker.list

In addition:

if you start a fresh install, use recent versions:

Tomcat 6.0.29
mod_jk 1.2.30
Apache 2.2.16 or 2.0.63

I don't know, what your actual problem is, but if it is session stickyness, 
then read on.

In order to make sticky session work, you need two ingredients.

1) You need to set the attribute jvmRoute in server.xml of each Tomcat instance 
to a unique value, something like your logical instance name. An example for 
setting jvmRoute is contained as a comment in the default server.xml file. The 
file is contained in the conf directory of Tomcat.

2) Configure a worker of type "lb" (load balancer), with one member worker per 
Tomcat instance. The member workers of the load balancer worker need to have 
the same names as the jvmRoute of the Tomcat to which they connect. In your 
above configuration those names are "tomcat1", "tomcat2", ..., so either you 
choose "tomcat1", "tomcat2", ... as the jvmRoute values, or you change the 
names of the workers above to the jvmRoute values you have already chosen. By 
default lb workers handle session sticky (unless you turn that off by 
sticky_session=0, something you don't want to). Now map your URLs to the lb 
worker using JkMount.

How does it work?

a) Tomcat automatically appends its own jvmRoute at the end of the session id, 
separated with a dot. The session id is send to the client either via the 
JSESSIONID cookie, or via URL encoding ("...;jsessionid=...").

b) mod_jk knows about that, extracts the value of the JSESSIONID cookie 
presented by the browser respectively extracts the id encoded in the URL, looks 
for the separating dot and extracts the jvmRoute from the id. The load 
balancing worker then searches for a member worker with the same name and uses 
that one for stickyness.

c) Any request without session id is balanced nonsticky depending on 
configuration and load.

Regards,

Rainer

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




      

Reply via email to