Bug 47795 - service sticky_session not being set correctly with multiple isapi_redirect.dll loaded
Summary: service sticky_session not being set correctly with multiple isapi_redirect.d...
Status: RESOLVED WONTFIX
Alias: None
Product: Tomcat Connectors
Classification: Unclassified
Component: isapi (show other bugs)
Version: 1.2.28
Hardware: PC Windows Server 2003
: P2 major (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-07 15:25 UTC by ceemour
Modified: 2019-10-07 18:20 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ceemour 2009-09-07 15:25:11 UTC
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
Comment 1 ceemour 2009-09-07 22:05:23 UTC
blah blah blah represents some random mumbly jumbly from the request, definitely not the JSESSIONID
Comment 2 Mark Thomas 2019-10-07 18:20:21 UTC
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.