Bug 51145

Summary: Need a NIO-based AJP connector
Product: Tomcat 7 Reporter: Jess Holle <jessh>
Component: ConnectorsAssignee: Tomcat Developers Mailing List <dev>
Severity: enhancement    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   

Description Jess Holle 2011-05-03 11:27:32 UTC
One of the major changes in Tomcat 7 is that it supports the Servlet 3.0 specification.  A major part of the Servlet 3.0 specification is obviously the support for asynchronous requests.

Some of us need to use Apache and mod_jk to provide load balancing over multiple Tomcats.  This means using the AJP connector, which currently has only BIO and APR options.  For those of us needing to support many (7) different platforms (some with horrific linkers, etc), APR is just not a workable solution -- too many nasty builds.

For such use cases a NIO-based AJP connector would really be enormously helpful.

Mark Thomas stated, "I don't know how much work that would be to write but
with the refactoring already completed for Tomcat 7 it might be as
little as 1000 lines of code."
Comment 1 Mark Thomas 2011-05-15 11:38:15 UTC
An initial implementation is available in trunk/7.0.x. It will be included in 7.0.15 onwards.

There are some aspects that are known to fail (e.g. request bodies). Once all the TCK tests pass, the experimental label will be removed and this issue will be marked as resolved.
Comment 2 Mark Thomas 2011-05-17 17:25:24 UTC
This has been implemented in 7.0.x and will be included in 7.0.15 onwards.
Comment 3 Jess Holle 2011-05-17 17:25:59 UTC
Does it pass TCK tests yet?
Comment 4 Mark Thomas 2011-05-17 17:27:50 UTC
Yep. It passes the Servlet 3.0 TCK with mod_jk and mod_proxy_ajp.