On Tue, 20 Aug 2002, Alex Chaffee / Purple Technology wrote: > There is a third option, by the way: > > 3. Wait with timeout. The request is queued, but if it takes longer > than a specified time to process (say, 20 seconds), then it returns a > 503.
Probably that's the best - and should be the only 'option'. > The third case actually subsumes the first two, since case 1 is > enabled by setting the timeout very high, and case 2 is enabled by > setting it very low (like 0). So I think this might be the best > design choice: only one algorithm to implement, only one setting to > configure. +1 > If I wanted to make a patch proposal, what source file(s) should I > look at? It's been a while... I'm not sure - I'm still confused by the dozens of interfaces/base classes/etc. Hopefully coyote and the jndi config will simplify that. The critical issue is making the context init work in another thread - I tried putting the webapp initialization in a separate thread but can't figure the context binding. And I tried a lot of tricks... If Remy can do that... What I did is make ContextConfig implement Runnable, rename start() to run() and added a start() method with: new Thread(this).start(); However I can't get it to find web.xml and anything else. I tried bindThread - but doesn't seem to work. > Why I think Wait should be the default: > > Use cases: > > * Human UI: most naive users will tolerate a pause (of up to, say, 30 > seconds) much better than they will understand that the proper > response to a 503 is to wait a moment and then click reload. Instead, > they will think "this site is down" and go to your competitor's :-) That's a matter of taste. I would rather see a page saying 'the app is starting, it'll be ready in few minutes' - or a smart guy could tune this and add some intermediary screen, maybe some javascript progress bar. Waiting 30 seconds is not a good impression. And the current alternative is not beeing able to connect to the site ( since the server is down ). Much worse... The 503 can also be used by lb to go to a different instance. > * Scripts: my test scripts launch Tomcat, then send a bunch of test > requests and verify the results. A 503 will cause the tests to fail > (unless I write special code to handle that case). I agree with this one. Probably configurable is the best choice, and until that the 'wait' behavior is better. Costin -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>