Have an IIS 6 Web site with isapi redirects to two tomcat engines with sticky support enabled. isapi filters are the 1.2.28 with chunked encoding suport. When only a single isapi is loaded into IIS all is fine here is the output of the isapi log with loglevel set to trace first request as expected no sticky yet with id =empty [Tue Sep 08 10:15:17.455 2009] [2500:2532] [trace] jk_lb_worker.c (1065): enter [Tue Sep 08 10:15:17.455 2009] [2500:2532] [debug] jk_lb_worker.c (1114): service sticky_session=1 id='empty' [Tue Sep 08 10:15:17.455 2009] [2500:2532] [trace] jk_lb_worker.c (903): enter [Tue Sep 08 10:15:17.455 2009] [2500:2532] [debug] jk_lb_worker.c (997): found best worker ndb1 (ndb1) using method 'Request' second request beautiful found the worker with the correct route [Tue Sep 08 10:15:17.533 2009] [2500:2532] [trace] jk_lb_worker.c (1065): enter [Tue Sep 08 10:15:17.533 2009] [2500:2532] [debug] jk_lb_worker.c (1114): service sticky_session=1 id='4E30F16C3E76C48D4F9E444B360CDC54.ndb1' [Tue Sep 08 10:15:17.533 2009] [2500:2532] [trace] jk_lb_worker.c (903): enter [Tue Sep 08 10:15:17.533 2009] [2500:2532] [debug] jk_lb_worker.c (942): searching worker for partial sessionid 4E30F16C3E76C48D4F9E444B360CDC54.ndb1 [Tue Sep 08 10:15:17.533 2009] [2500:2532] [debug] jk_lb_worker.c (950): searching worker for session route ndb1 [Tue Sep 08 10:15:17.533 2009] [2500:2532] [debug] jk_lb_worker.c (964): found worker ndb1 (ndb1) for route ndb1 and partial sessionid 4E30F16C3E76C48D4F9E444B360CDC54.ndb1 [Tue Sep 08 10:15:17.533 2009] [2500:2532] [trace] jk_lb_worker.c (967): exit in this case the jvmroute parameter has been set to ndb1 in the first tomcat If I add another instance of the isapi dll into the web site I get an unusual service sticky_session log entry [Tue Sep 08 10:21:08.705 2009] [3936:3008] [trace] jk_lb_worker.c (1065): enter [Tue Sep 08 10:21:08.705 2009] [3936:3008] [debug] jk_lb_worker.c (1114): service sticky_session=3682862 id='blah blah blah' [Tue Sep 08 10:21:08.705 2009] [3936:3008] [trace] jk_lb_worker.c (903): enter [Tue Sep 08 10:21:08.705 2009] [3936:3008] [debug] jk_lb_worker.c (942): searching worker for partial sessionid blah blah blah [Tue Sep 08 10:21:08.705 2009] [3936:3008] [debug] jk_lb_worker.c (950): searching worker for session route blah blah blah [Tue Sep 08 10:21:08.705 2009] [3936:3008] [debug] jk_lb_worker.c (997): found best worker ndb1 (ndb1) using method 'Request' The service sticky_session=3682862 is incorrect and so is the information after it and there is no way that stickiness can work
blah blah blah represents some random mumbly jumbly from the request, definitely not the JSESSIONID
On newer versions of IIS, it is not permitted to load multiple instances of the isapi_redirect.dll. A 500 error is returned. Generally, I'd expect a single instance of the DLL to be used with appropriate worker configuration. A single instance of the DLL can support multiple independent groups of workers.