Has anyone had problems with Tomcat losing the HttpSession when Apache uses mod_jk configured with 2 normal workers connected to *different* hosts? I have boiled down to the following test case:
worker.list=customers,staff worker.customers.type=ajp13 worker.customers.host=host01 worker.customers.port=8009 worker.customers.retries=4 worker.customers.connect_timeout=10000 worker.customers.prepost_timeout=10000 worker.customers.connection_pool_timeout=600 worker.staff.reference=worker.customers worker.staff.host=host02 This is a simplified version of my Apache directives that route to those workers: JkMount /* customers JkMount /admin/* staff JkUnMount /images/* customers The failure surfaces in our code when the Tomcat HttpServletRequest request.getSession(false) returns null while processing the POST of the form request. The JSESSION cookie in the browser when the form loaded was correct, i.e., the same as the value right after I submitted my successful request to the login form. Strangely the failure only affects a couple of our /admin/* pages and -- stranger still -- only when worker.list includes both workers and the host set for those workers is different. If I only activate "staff", it works. If I change worker.customers.host=host02 to match with "staff", it works. It doesn't matter if either or both hosts are actually the localhost or a remote host -- if they differ, there is a failure, but only for a couple page requests. Finally, all of these pages worked with the identical JkMount directives with an older, more complicated version of workers.properties that used a load-balanced worker pool in place of "customers" (yes, the pool included a connection to host02). We have the following platform: Linux: Red Hat Enterprise Linux ES release 4 (Nahant Update 4) Kernel 2.6.9-42.0.3.ELsmp Apache: 2.2.3 Using prefork MPM Apache Tomcat Connector mod_jk/1.2.21 Tomcat: 5.5.17.0 JVM: 1.5.0_08-b03 Spring: Framework: 1.2.9 Web Flow: 1.0.3 Thanks, David Crane DonorsChoose.org