Thanks, understood, I'll attach a patch to Bugzilla for the trunk as well in the next day or two.
\|/- Keith Mashinter [email protected] ________________________________ From: Jim Jagielski <[email protected]> To: [email protected]; Keith Mashinter <[email protected]> Sent: Tuesday, May 24, 2011 10:18:04 AM Subject: Re: id=51247 Enhance mod_proxy and _balancer with worker status flag to only accept sticky session routes I like the concept... will review. PS: Most patches should be against trunk. We fold into trunk, test and only then propose for backport for 2.2.x On May 23, 2011, at 3:10 PM, Keith Mashinter wrote: > I've added a patch to the proxy/balancer to allow for route-only workers are > only enabled for sticky session routes, allowing for an even more graceful > fade-out of a server than making its lbfactor=1 compared to lbfactor=100 for > others. > > Please reply/vote if you also think it's useful. > > https://issues.apache.org/bugzilla/show_bug.cgi?id=51247 > This enhancement, actually SVN Patched against 2.2.19, provides a worker > status > flag to set a proxy worker as only accepting requests with sticky session > routes, e.g. only accept requests with a .route such as Cookie > JSESSIONID=xxx.tc2. > > This allows for a graceful fade-out of servers when their sessions are > removed; > they continue to receive requests for their sticky session routes but are > passed over for requests with no specified route, just as if they were > disabled. In other words, route-only workers are only enabled for sticky > session routes. > > Intended use (Tomcat JSESSIONID noted here but could be PHPSESSIONID, Ruby > _session_id, or anything with cookie or request-parameter based session ids): > 1. An Apache rev-proxy running for multiple Tomcats. > 2. To fade-out a Tomcat for maintenance, set route-only enabled in > the > > balancer-manager or reload the configuration with the worker status +R. > (This depends on Tomcat web-apps delete session cookies, see further below.) > 3. Check on the balancer-manager or its Tomcat worker even a few minutes / > hours, and when it seems to have completed old sessions you can mark it fully > disabled. > 4. Once done maintenance, you can then set route-only disabled (status -R) and > fully enable the worker again. > > To delete a JSESSIONID Cookie from a Servlet, you need to specify the same > Domain and Path as the original Cookie and setMaxAge=0 as in the typical > example below but you should check on your own Domain and Path when a Cookie > is > created, e.g. watch the Cookie headers in Firefox Firebug. > > // To delete a Cookie setMaxAge(0) and also any original domain and path >if > specified. > Cookie ck = new > Cookie("JSESSIONID", null); > > //ck.setDomain(""); > ck.setPath(request.getContextPath()); > ck.setMaxAge(0); > response.addCookie(ck); > > \|/- Keith Mashinter > [email protected]
