Bug 46579

Summary: JKISAPI_PATH & JKISAPI_NAME not usable with multiple ISAPI instances
Product: Tomcat Connectors Reporter: Eugenio Alvarez <ealvarez>
Component: isapiAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: major    
Priority: P2    
Version: 1.2.27   
Target Milestone: ---   
Hardware: PC   
OS: Windows Server 2003   

Description Eugenio Alvarez 2009-01-21 14:26:58 UTC
The jk_isapi_plugin.c is using SetEnvironmentVariable to set the JKISAPI_PATH to the ISAPI dll path. The problem is that SetEnvironmentVariable is setting the variable globally in IIS. So, when multiple ISAPI redirector dlls are installed the value of the directory is which ever the last one that modified it. Normally, when IIS is started or restarted the ISAPIs are initialized in order so the these variable works correctly in the properties files.

# Use the logs in the installation path of ISAPI Redirector
log_file=$(ISAPI_PATH)\$(ISAPI_NAME).log

However, when an ISAPI redirect is reloaded it sometimes writes to a log file of another ISAPI instance. Worse is that it reads the URI mapping rules from another instance.

This problem has basically made the ISAPI_PATH variable useless in environments where multiple instances of the ISAPI redirector are used on one machine.

I have summitted a enhancement request that would remove the need to used this variables by using the relative path of the dll/properties file when a path is not specified.

log_file=$(ISAPI_NAME).log

TIA,
Eugenio Alvarez
Comment 1 Mladen Turk 2009-01-30 23:42:15 UTC
Fixed in the SVN (r739519)