Hi Esmond
To reiterate what Christopher said, if you close the listening socket
because you think you can't service one extra client, you will lose all the
connections on the backlog queue, which could be hundreds of clients, that
you *can* service.
I do not see a problem here. We develop software that routes millions of requests to dozens of Tomcat instances. For a single instance of Tomcat - the problem is much simpler. It should just handle the maximum number of connections its configured for. If each single Tomcat instance behaves slightly better (i.e. refuse vs reset), we can avoid making any guesses about whether Tomcat has crashed etc - if a TCP level reset on the connection is received instead of a refused, and can perform much better support independent of whether a service or method is idempotent. This context is different from a clients making say JSP calls for a UI.

The end clients connecting to us may use HTTP or HTTPS, with out without keep-alives etc. We will handle those connections, and then route, load balance and failover against dozens of Tomcats. Now each connection we establish to a Tomcat will almost always be a well kept Keep-Alive, which is re-used even for different requests originating from multiple external clients. So if we are managing say 10K connections, maybe 4K with keep-alive and 6K without with our clients, we will still use a limited number of keep alive connections to each single Tomcat we load balance and fail over against.

Yes, we can and do support connection throttling at a slight cost to safeguard a single Tomcat from receiving more connections that it can, but if Tomcat was able to not reset connections at the TCP level - we can perform our task much better, and I do not think this will cause any problem to any other use cases of Tomcat - if we can just enable this behavior with a configuration parameter
In addition, those clients will then get exactly the behaviour that you are
complaining about: a successful connection and then a 'connection reset'
when doing I/O.
No, they will not get an ACK to the SYN packet which is much better. Else they will get an ACK, and the Tomcat will start receiving a part or whole payload - and then reset which is nasty - this is the main difference

There is no possibility of this proposal being accepted.
I do not understand the negativity here.. I was wondering if I should take this discussion to the dev@ list since I've already discussed it on user@. I wish Tomcat had a Wiki or used JIRA where I could submit this as a proposal - maybe with a diagram/screen shots etc - and make end users vote for this across a few months - until we find that this solution has a value.

regards
asankha

--
Asankha C. Perera
AdroitLogic, http://adroitlogic.org

http://esbmagic.blogspot.com




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to