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

Reply via email to