Henri Gomez wrote:
Well why so much noise about NIO/APR ?
Because I don't want to have to support 20 different connector technologies (you can call it a business requirement). So one has to be labelled as "experimental" or something. Similarly, the connector options right now are (for me) a bit too large.
If some want to experiment APR or NIO, why can't they do their works on some sort of incubations projets and when stable enough give us benchmarks results. Benchmarks/tesings should give us information on : stability, speed, memory usage, IO usage and of course we should have these on many platforms. For example if the alternative implementation is running fast as hell on Linux but has no gain on Windows or iSeries should we consider it usefull to users ? Also should we depend on APR on a java centric project ?
Apparently not ;)
I've got no problem with APR, it's a very good piece of code, running well even on exotic platforms like iSeries (and probably BS2000 jfc ?), but should we use a native library as the fundation of Java products ?
The code it replaces in the JVM is all native, written by the JVM vendor. For most users, it's written by Sun, and parts of it (java.nio select functionality, for example) have seen reliability issues. Fixing these kind of problems in this key component (at least in the case of a web server) requires updating the whole JVM. Besides Sun, and hopefully the other JVM vendors, I don't see how to actually do support on a NIO Tomcat.
APR OTOH is used heavily in a similar production usage on all the platforms that we want to support.
Also since we're speaking about a future Tomcat redesign, shouldn't we take care of the future JVM implementations ? Sun, IBM JVMs for now but in the future GJC and upcoming Harmony ? If these use APR or something similar in native land, should we use APR directly ?
Unless the said JVMs get certified, I think only a few people are going to use them for real usage. BTW, yes, APR is still needed, as the JVM can only expose a small subset of the functionality through java.nio.
I'd like to see here pragmatics informations on gains expected when using NIO/APR/WHATEVER in real life situations which is what users and admins expects.
I can give a real life example using AJP where the current connector doesn't work. If you have many front end Apache servers and few Tomcat servers, since the AJP connections are persistent, the backend servers will not be able to serve requests. APR allows using a poller for keepalive, so this solves the problem and the thread count on backend servers will remain sane.
Have a good day and peace on Tomcat Dev community
Ok :) Rémy --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]