Hi list,
We have recently upgraded our Apache servers from Debian Squeeze to
Wheezy (from Apache 2.2.16 with mod_jk 1.2.30 to Apache 2.2.22 with
mod_jk 1.2.37). The Tomcat version hasn't changed (7.0.37).
We often do rolling releases by disabling (DIS) some worker in
jkmanager, waiting for a few minutes for most sessions to go away (we
use sticky sessions but not forced), upgrading it, and re-enabling it.
This worked perfectly with mod_jk 1.2.30. The server is rather busy
(order of 100-200 req/s going to tomcat).
However, with mod_jk 1.2.37, the activation state behaves erratically.
Say I disable worker1 on all apache servers via jkmanager. When I go
back to the jkmanager overview screen, it still shows as active. I hit
reload, now it shows as disabled. I can wait for a few seconds or
minutes, reload, and suddenly it shows up as active again! It keeps
switching back and forth between active and disabled if I reload often
enough. Afterwards I usually have to set it to active a few times to
make it stick there. This happens on all apache servers independently.
And more worringly, the load on the worker does not decrease, not even
after waiting for half an hour or longer (with 1.2.30, the load on a
worker decreased to about 5% after 5-10 minutes).
When I set a worker to stopped, the activation state also switches
between active and stopped, the load on the worker goes down slowly, but
the requests do not cease completely. With 1.2.30, I could set a worker
to stopped and it instantaneously received no more requests.
Other than that, mod_jk behaves as expected (e.g. if I shut down one of
the tomcats, the requests go to the other; load balancing works fine in
normal operation).
I have stripped down our workers.properties to the bare minimum that we
need, and the problem is still there:
ps=/
worker.list=loadbalancer,jkstatus
worker.jkstatus.type=status
worker.loadbalancer.type=lb
worker.loadbalancer.sticky_session=true
worker.loadbalancer.balance_workers=worker1,worker2
worker.worker1.type=ajp13
worker.worker1.host=WW.XX.YY.ZZ
worker.worker1.port=8009
worker.worker1.connect_timeout=70000
worker.worker1.prepost_timeout=70000
worker.worker1.socket_timeout=70
worker.worker1.connection_pool_timeout=70
worker.worker1.connection_pool_size=200
worker.worker1.retry_interval=1000
worker.worker1.lbfactor=1
[same for worker2, only difference is the IP address]
Rest of the configuration is Debian standard. Apache uses JkAutoAlias,
JkMount and a bunch of JkUnMounts, but nothing fancy.
The changelog does not really give me any clues as to what change could
cause this, and neither does the workers.properties documentation :(
Does anyone have an idea what I could be doing wrong?
Thanks!
David Gubler
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org