Hi all, I previously submitted the lb 'busyness' patch for mod_jk, and it has worked well for us.
Now we need some additional functionality from mod_jk and I'd like to get feedback here first before I start patching. I'd prefer to implement something that is generally useful to others, and submit the patch, so it becomes part of the mod_jk codebase. First, the problem. Currently there isn't any direct way for a servlet to tell mod_jk that it should be marked as being in 'Error' state (as being down). We have a backend HTTP service that requires high availability. If the servlet detects that something is wrong, it should "take itself out" of the mod_jk load balancer, at least temporarily. There are two ways I can think of to accomplish this right now. The first, which I've done, is set the reply_timeout to a fairly low value, like 4000ms, and then make the servlet intentionally sleep for 5000ms to cause it to go into Error state. This works, but having the reply_timeout so low is a risk -- if the backend servers are slow for some reason (copying large files, etc), they can all be marked as down -- oops. The second method, which I have not tried, is to have the servlet do a GET request to the mod_jk JkStatus page, to take itself out of rotation. While it may work, I just don't have good feelings about this method. If anyone has other suggestions on ways for a servlet to force itself to be marked as in 'Error' state, please reply. So, I looked through mod_jk code hoping that I could have the servlet throw an HTTP 50x error that mod_jk would interpret as "down", but no such luck. There has been talk before about writing a "meta" communication layer between servlets and mod_jk. This could open up the doors to some cool things: Servlets could provide JK with load information, average response times, available webapp contexts, etc. See this thread: http://mail-archives.apache.org/mod_mbox/httpd-dev/200606.mbox/[EMAIL PROTECTED] For my current purposes, I just need the servlet to tell mod_jk "even though I'm available, mark me as in Error state!". How should we do this? Using a "hidden" HTTP response header might work for communicating general strings, or returning certain "reserved" HTTP responses (HTTP 599 = error, etc) -- these are two options that come to mind. I'm willing to implement and test the mods, including under heavy load. Thanks, Chris